**
ios上课学习
**
2018-9-6
ios初步的语法简介和相关类型
//: Playground - noun: a place where people can play
import UIKit
//可以用let或者var定义
let label = "The width is"
//用\()可以将数据转换成字符串
//补码在计算机负数总比证书多一个数
//元祖tuple
//远足可以分解,可以用下标访问元组中每个值
let amount = (100,"eur")
let currency = amount.1
//元组可以给每个元素命名
let mon = (amount:100,currency:"eur")
let cur = mon.currency
//元组分解可以指分解部分值,其他值用_代替
//let (cur,_) = mon
//swift没有++,--,for,一律用for..in代替,in后是可以放任何有顺序的,if后没有圆括号,且条件必须是bool值的
let ind = [56,76,87,98]
for score in ind {
print(score)
}
//===,!==判断是否是同一个应用对象,或者是位置
//字典key-value,最后一个元素后面允许有个逗号
var occupations = [
"ma":"ca",
"ka":"ner",
]
occupations["ja"] = "pu"
//空数组
let emptyArray = [String]()
//空字典
let e = [String:Float]()
//元组(元组的作用)
var x = 1, y = 2
print("x=\(x) y=\(y)")
(x,y) = (y,x)
print("x=\(x) y=\(y)")
//字典的访问快,但是顺序和放入的顺序不同,因为是哈希表,数组访问速度很慢,元组可以同时存多类型的元素,并且个数固定,不可增加删除,一般适合少量数据
//switch
var age = 60
switch age {
case let x where x < 18:
print("少年")
default:
print("其他")
}
//函数(_空标签,否则要加上参数名)
func greet(_ person:String,_ day:String) -> String{
return "hello \(person) on \(day)"
}
var m = greet("jfa","28193")
func add(x:intptr_t,y:intptr_t) -> intptr_t {
return x+y
}
var r = add(x: 1, y: 2)
print(r)
//..<不包括上界,...包括上界
//可选值
var k:String? = "hello world"
print(k)
var str:String = ""
if k != nil {
str = k!
}
//函数可以嵌套,函数是一等公民,可以做很多事情,还可以作为函数的返回值,最外层的返回值是被返回的函数的参数和返回值类型
func ma() -> ((intptr_t) -> intptr_t){
var number = 0
func addone(number:intptr_t) -> intptr_t{
return 1+number
}
return addone
}
//函数可以作为参数
//闭包,函数是有名字的闭包,还有一种没有名字的闭包(匿名函数)
var p