: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
本文章总结swift的一部分基本语法(常量变量,判断语法[if guard switch],循环语句,字符串,字典,元组,可选类型,.... )还有其他语法会后序更新
swift相比OC 少了一点点灵活性 但是swift比OC更加严谨 更加负有逻辑性 如果经常打OC的代码需要多点时间来适应swift的语法 相对学过JAVA来说一些
语法还是挺接近
开车吧
/******************常量和变量**********************/
在swift当中常量和变量必须在使用前声明
用let来声明常量,用var来声明变量
常量定义方式:
可以用任何你喜欢的字符作为常量和变量名,包括Unicode字符
常量与变量名不能包含以下:
数学符号,箭头,保留的(或者非法的)Unicode码位,连线与制表符。
也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
定义的3种方式
1.先定义再初始化
var number :Int Swift:注意关键字大写
number = 100
2.定义同时初始化
var number1 :Int = 100
3.可以不写数据类型->编译期会根据初始化的值自动推断出变量的类型(类型推断机制)
var age = 100
常见的写法一般都是 第二种和第三种
注意swift没有隐式转化只能用强转(OC中可以隐式类型转换)
var int = 100
var double = 12.1
let number = int + Int(double)
print(number)
注意 在OC中一般浮点型 一般都是float 但是在 swift 都是double
常量的本质:指向的内存地址不可以修改,但是可以通过内存地址取出对象的内部属性进行修改'
/******************运算符**********************/
> < >= <= == != ?:
除了取模,其它和OC一样,包括优先级
注意:Swift是安全严格的编程语言,会在编译时候检查是否溢出
但是只会检查字面量而不会检查变量
所以在Swift中一定要注意隐式溢出
遇到这种问题可以利用溢出运算符解决该问题:
http: www.yiibai.com/swift/overflow_operators.html
关系运算符,得出的值是Bool值,基本用法和OC一样
C语言的Bool类型非0即真
OC语言的Bool类型是typedef signed char BOOL;
Swift引入了真正的Bool类型(没有非0即真)
Bool true(真) false(假)
逻辑运算符在swift当中只能操作Bool类型数据(避免了if(isOpen == 2)判断写错if(isOpen =2))
Swift:不允许连续赋值, Swift中的整个表达式是没有值的.
主要是为了避免if (c == 9)
这种情况误写为if (c = 9) ,c = 9是一个表达式,表达式是没有值的
所以在Swift中if (c = 9)不成立
下面这个写法是在swift当中不允许的(在OC中可以连续赋值)
var num1:Int
var num2:Int
num2 = num1 =10
/******************运算符之逻辑分支**********************/
区间
闭区间:包含区间内所有值a...b例如: 1...5
半闭区间:包含头不包含尾a..
注意: 1.Swift刚出来时的写法是a..b
2.区间只能用于整数,写小数会有问题
for的三种格式
for var i = 0; i<10 ; i++ {
print(i)
}
区间格式
for i in 0..<10 {
print(i)
}
for _ in 0..<10 {
}
if int >= 80 {
print("我已经\(int)岁")
}
guard : (守卫) 这个判读语句只有swift 才有
func duodale (int:Int) {
guard int < 50 else { 满足条件直接return
print("还是豪生仔")
return
}
guard int < 80 else {
print("老是老,古古还是功力厚")
return
}
当上面的情况全都不满足了就会执行到这来
print("hehe老是老,古古还是功力厚")
}
调用该判断
duodale(int)
/*switch
1.switch后面的()可以省略
2.case结束后可以不加break,如果不加,系统会默认加上break
基本使用补充:
1.在swift中的switch case后面是可以判断多个条件, 并且多个条件以,分割
2.如果非常的希望产生case穿透,可以在case结束后加上fallthrough
*/
switch int {
case 8 :
print("888")
case 29:
print("292929292")
default:
print("case结束后可以不加break,如果不加,系统会默认加上break")
}
多个条件
switch int {
case 90, 100 :
print("