swift 1
来源:互联网 发布:淘宝发货清单模板下载 编辑:程序博客网 时间:2024/05/17 02:23
初学swift 。因为工作需要 接下来要学习一门新语言 swift。
1.变量与常量
变量声明:
var 定义变量 let 定义常量;
一方面 swift 是一个类型安全的语言(java)。另一方面 在定义的时候,不需要指明类型(js)。当然 跟js不同的是。他会根据右边的值推断类型。它仍然是安全的。
var x = 1;
x = “xxx”//这样会报错 因为推断类型是 int。不能复制成 string了。
不同类型的变量不可以相加。更加不会自动转换类型。 即使是 int32 与 int8 之间 也不可以直接相加。
元组:
元组是几个不同类型数据的集合体。用 ()来组成一个整体。 比如("张三",22,"男")这就是 由三个变量组成的一个元组 其中2个string 一个 int。要想获取元组的某一个值需要用内容分解。
var x = ("张三",22,"男");
var (name,age,sex)=x;//其中不需要的可以用_代替就忽略了 比如 var (name,_,sex)
println("name:\(name) , age:\(age) sex:\(age)");
也可以当做数组一样的获取。
println("name:\(x.0) , age:\(x.1) sex:\(x.2)");
元组也可以有一个更符合大家习惯的写法。就是类似json一样var x =(name:"张三",age:22,sex:"男");这样写法的元组 获取方法跟js一样 x.age;
ps:元组的意义可能在于某些方法需要返回多个参数。
可选和可选绑定
这里可选的含义可能在以前的语言中没有接触过。在 swift 是任意类型的缺失。 可以理解为null(可能不是一回事 但是感觉很像,区别可能就是 nil 不仅仅是对象。所有类型都可以使nil)。不过需要注意的是。更其他语言不通。只有可选的变量才可以赋值成nil。 可选的写法 是 var :Int? 在变量类型的后面 加上一个问号 就是可选的了。
var x:Int;
x=nil;//这样是会报错的。因为x不是可选的。所以x 必须有值。
可以同过 if 来判断某个可选变量是否有值。通过!来获取这个可选变量的值(如果这个可选变量有值的话。如果没值 会报错。)
ps:这里需要格外注意。对于其他语言的开发者(比如我 以前java)会犯很严重的错误。比如
var x:Bool = false;if x { println("x is true")}else{ println("x is false")}var y:Bool? = false;if y { println("y is true")}else{ println("y is false")}上面的程序 输出 是 x is false y is true 因为对于可选变量 if 只是判断是否有值 而不取值。要想取值 需要用 !(这里的! 就好像把 可选变量变成了非可选变量。即使不用! 可选变量也是可以正常用于 运算。除了 if 语句)。
var z:Bool? = false;if z! { println("z is true")}else{ println("z is false")}
如果上面这样写法 就是 输出 z is false了。
可选绑定是用来解决上面的问题的。
var x:Int?=1;if var y=x{ println(y); //y=nil;}在上面的例子中 就是一个可选绑定。 意思就是 如果 x 是有值的话。就赋值给y。 需要注意的是 在这里 y将不是可选变量。 如果赋值 nil 会报错。不同于下面的写法
var x:Int?=1;var y=xprintln(y);y=nil;
隐式解析可选
所谓隐式解析可选 是当一个定义一个可选变量的时候。每次都需要用可选绑定来取值 是在是太低效了。 如果你能够保证每次取值的时候都不是nil。 那么不需要通过!号 来去值。写法是 定义变量的时候: var x:Int! 用! 代替普通可选的 ?。这样 在使用的时候。 x 就相当于 x!。当然 如果 x 是 nil 那么就会触发运行时报错。
0 0
- swift-1
- swift 1
- Swift 1
- swift-1
- Swift 1
- swift-1
- swift 1
- Swift学习1--初识Swift
- Swift源码分析----swift-proxy与swift-account(1)
- Swift源码分析----swift-proxy与swift-object(1)
- [openstack swift]1 swift安装(1)
- [openstack swift]1 swift安装(2)
- Swift源码分析----swift-account-audit(1)
- Swift源码分析----swift-object-auditor(1)
- Swift源码分析----swift-account-reaper(1)
- Swift源码分析----swift-account-replicator(1)
- Swift源码分析----swift-object-replicator(1)
- ios swift学习日记1-Swift 初见
- Hive常用日期函数整理
- ArcSDE的二种连接方式的解释
- c#使用itextsharp的实例
- 性别在数据库中存的是1和2,在页面要展示男和女
- The Art of R Programming--Extended Example(未完待续)
- swift 1
- java中的URLEncoder和URLDecoder类
- Flex 中给Datagrid表头添加按钮
- ArcSDE与ArcCatalog
- HDU 2222 Keywords Search
- JavaWeb—IOT项目学习日记之project报红色感叹号
- 并查集+贪心 Conquer a New Region HDU 4118 && ZOJ 3659
- 南京旅游规划图
- AHCI Big View