swift 学习(1)

基础部分

基础部分这块 对于我个人来说值得注意的有以下几点 :类型安全和类型推测, Optionals(可选) ,强制解析,可选绑定,隐式解析可选,断言

1,swift  语言的类型安全和类型推断

swift  语言是类型安全的,所以你可以清晰的知道你要处理的值是什么类型的,在编译的时候他会进行类型检查( type check),类型不匹配的地方编译出错。如果你没有定义某个值的类型,swift语言会进行类型推测,选择合适的类型,如:

var  test_1:Int  =  20

var  test_2  =  21

像这样,swift 语言必须要指定类型,但是第二种定义是被允许的 ,应为我们swift语言有类型推断.

2,optionals     ( ? 表示)

Oc 中我们是知道的没这个概念,在objective-c中 当一个值从服务端返回 是值缺失的状态,往往是伴随一个特殊的值来暗示值缺失,当我们知道时我们可以预先判断,但我们不知道是往往会 crash 掉, 但是在swift中  我们有了可选这个东西  就比较好处理这种情况,当一个值不能保证一直有值的情况下 我们可以定义他为可选类型的,这样 当有值得时候正好,但是当没有值得时候,可选暗示了任意类型的值缺失,

 let string = "eric"

        let number:Int? = string.toInt()

number 可选类型 string 当为数字是 number 是不缺失的;


3,强制解析

当一个可选类型有值的时候,我们可以在这个可选值的后边加上 (!) 来获取他的值,这就是可选类型的强制解析(forced unwrapping)


if (number != nil) {

            println("number is :\(number!)")

        }

        else{

             println("number is nil")

        }

4,可选绑定

我们可以使用可选绑定(optional binding)来判断一个可选类型是否有值,如果有值,就把这个值赋值给一个临时的常量或者变量.


if let haveValue = string.toInt(){

            println("the value is \(haveValue)")

        }

        else{

            println("the value is nil")

        }

在这里由于 haveValue 被 可选包含的值初始化过,所以不用在使用强制解析,

5,隐式解析可选

当我们知道一个类型总是有值的时候,如果定义成可选类型的话,每次都要去判断和解析可选值是很低效的,这样这种类型的可选可以被定义为隐式解析可选,Int? 改成 Int!

隐式解析可选不用每次使用解析来获取值

let string1:String? = "hellow" 可选

        println(string1!)

        let string2:String! = "hellow" 隐式解析可选

        println(string2)


6 ,断言 assertion

简而言之 就是条件不满足时 你的应用会被终止。

简单格式

asser(<条件判断>, "<断言信息>") or asser(<条件判断>) 可以没有断言信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值