1、随机数: Int.random(0...5)

2、变量:     var name=“”

3、常量:     let  age =23

4、声明:

                var age: Int = 23         

                

5、插值: “this girl age is \(age)”

// 常量:let 变量: var


let maxAge = 200 // 声明常量
var currentAge = 23 // 声明变量
currentAge = 35

print(currentAge)


//声明多个常量和变量
var x = 0.0,y = 0.0 , z = 0.0


//类型注解: 修饰符 名称:类型 = 值
var welcomeMessage: String = "welcome to here"

print(welcomeMessage)


welcomeMessage = "welcome to there"

print(welcomeMessage)


var red,green,blue: Double


// 字符串插值 \(变量)
print("this is a message : \(welcomeMessage)")



// 注释 : /* 注释的内容*/

//整数:
/*
 
 */

let minValue = UInt8.min
let maxValue = UInt8.max

//类型安全和类型推断

//数据类型转换: 数据类型(需要转换的值)
let two: UInt16 = 2_000
let one: UInt8 = 1
let twoAndone = two + UInt16(one)


//类型别名:便于用户将数据类型表示的内容具体化,定义别名之后,可以使用别名替代原始数据类型
typealias AudioSample = UInt16

let three: AudioSample = 123


// 布尔值 Boolean true、false


// 元组
/*
 把多个值组合成一个复合值,元组内的值可以是任何类型,并不要求相同类型
 元组可以使用索引来获取对应的值,索引值从0 开始
 元组定义的时候可以给每一个对应的值取名称
 */

let http404Error = (404,"Not Found")
let http404Error2 = (statusCode:404,statusMessage:"Not Found")

// 元组的分解
let (statusCode,statusMessage) = http404Error
// 如果只是需要一部分值,其他的不需要,不需要的值可以使用_来替代
let (httpStatus,_) = http404Error
print(httpStatus)
print(http404Error.0)


// 可选类型optionals
/*
 使用可选类型来处理值可能缺失的情况。
 可选类型表示两种可能: 或者有值(可以解析为具体的值)、或者根本没有值
 */

let  possbileNumber = "123"
let convertedNumber = Int(possbileNumber)
// convertedNumber 被推测为Int?、或者类型optional Int

// 可以给可选类型赋值为nil,表示它没有值
var serverResponseCode: Int? = 404
//serverResponseCode = nil // 只有可选类型才可以将nil赋值,否则不可以
//如果定义可选类型之后,没有赋值。默认被设置为nil
var surveryAnswer:String? // 默认值将会是nil

//如果确认一个可选值的类型的变量是有值的,那么使用 ! 来进行强制解包,以获取这个已存在的值。
print("this is a optonal value: \(serverResponseCode!)")

// 可选绑定:optional binding
/*
 用来判断可选类型是否包含值,如果包含就将值赋值给一个临时变量或者常量,一般在控制流语句中使用
 */
if let constantname = surveryAnswer {
    print("this value is :\(constantname)")
}else{
    print("this value is nil")
}

// 隐式解析可选类型
/*
 在第一次被赋值之后,可以确定一个可选类型总是有值的,在这种情况下,每次都要判断可解析可选值是非常低效的,因为可以确定它总是有值的。
 在这种情况之下,这种可选类型可以使用隐式解析可选类型来表示。
 做法: 将可选类型后的? 更改成为! 即可
 隐式可选类型不需要进行解包、解析操作,直接使用即可
 */

let aa: String? = "aa string"
let aaOptional: String = aa!

let bb: String! = "bb string"
let bbOptional: String = bb



// 错误处理 error handling
//throws
func canThrowError() throws {
    // 可能抛出错误
}
// 使用try 捕获

do{
    try canThrowError()
}catch{
    print("error handling")
}

//断言 assert ,断言为false,被触发,应用会终止
/*
 let age = -3
 //assert(age < 0 ,"age is not possible < 0")
print(123)
 */
















































Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐