iOS开发日常

Swift3 学习

2017-06-08  本文已影响1人  feedback1991

1.常量与变量

let name = "小明"//定义一个名字叫小明的常量
var hisAge = 8//使用var关键字来定义一个hisAge的变量
swift是不用后面加 ; 的,与oc不同,定义的时候也可以不指定类型(当然也可以指定类型,具体实现稍后再写)。swift并不是不是一门强类型的语言,而是依附着强大的类型推测功能。
//这个是标注类型的
var name :String = "小明"

2.注释

//单行注释格式
/*
块注释格式
*/

3.输出print

print("那是小明!")
print("1","2","3")```
###### 上面两个会输出 我是小明! ,还有 1,2,3
```swift
print(items: Any..., separator: String, terminator: String)
上面这个是一个重载的print方法,可以对items里的参数指定分隔符和终止符,比如:
print("a","b","c",separator:"*",terminator:"end")```
###### 打印结果是a\*b\*cend 。
```swift
let name = "小明" 
print("那是\(name)")
打印结果是 那是小明。

4.基本数据类型

元组类型
元组是Swift中一个非常好用的数据类型,它可以把多个值的成员复合成一个值,这些成员的数据类型可以不同。格式是把成员值放到一个括号里,以括号分隔。
let message = {"小明",9,"三年二班"} 

也可以这样写,给每个成员变量命名:

let message = {name:"小明",age:9,grade:"三年二班"}
let showName = message.name
let showAge = message.age
let showGrade = message.grade

当我们只需要其中一个或两个值得时候这样赋值,只保留第二项,其他都省略:

let message = (name :"小明",age :9,grade:"三年二班")
let (_,showAge,_) = message
print("Name is \(showAge)")

5.可选型

var age :Int?
age = Int("12")//结果age = 12
age = Int("小明")//age = nil
这个例子告诉我们可选性如果没有值则返回一个nil的值,否则返回一个Int的值。

6.运算符

?? 运算符:它的之前是可选型,之后为非可选型。“??”操作符自带解包功能,在赋值时“??”会检查其之前的可选型;如果可选型不为nil则返回可选型的值;如果其值为nil,则不会返回nil而去返回“??”之后的非可选型的值。

7.数值运算

判断条件?为真时的操作:为假时的操作。
var 身高 =180
var 名字 = 身高<160 ?"小明":"小刚"
//结果为小刚

8.字符串

var str = "Hello"
str[str.index(str.startIndex, offsetBy:3)]
//下标取值并不能保证安全,所以有了下面的这个方法
str[str.index(str.startIndex,offsetBy:6,limitedBy:str.endIndex)!]//如果指定的下标越界就会立刻抛出错误
var str = "hello"
let start = str.index(str.startIndex, offsetBy:1)
let end = str.index(str.startIndex, offsetBy:3)
str(start...end)
var s1:NSString = "NSStr"
var s2:String =String(s1)
var s3:String = "Str"
var s4:NSString = s3 as NSString//转类型
let num = "123.45"
let deRange = num.range(of:".")//该方法返回的是可选型
let wholeNumber  = num[num.startIndex .. < deRange!.lowerBound]
var str = "Hello"
let start = str.index(str.startIndex,offsetBy:1)
let end = str.index(str.startIndex,offsetBy:3)
str.removeSubrange(start...end)//结果是Ho
var str ="Hello"
let start = str.index(str.startIndex,offsetBy:1)
str.remove(at:start)
print(str)
var str = "Hello"
let start = str.index(str.startIndex,offsetBy:1)
let end = str.index(str.startIndex, offsetBy:3)
str.replaceSubrange(start...end,with:"new")//结果是Hnewo

9.集合类型

var a = Array<String>()//得到一个字符串类型的空数组

这是一种泛型结构体式的初始化方法。
第二种初始化方法:

var a = [String]()

官方比较推荐第二种方式。

1.exampleOfArray +=["AD钙奶"]
2.exampleOfArray.append("AD钙奶")
1.var arrayItem = exampleOfArray[0]
exampleOfArray[1] ="软炸里脊"
exampleOfArray[1...2] = ["AD钙奶"]

如果想把新元素插入到指定位置,则可以使用方法insert:

exampleOfArray.insert("AD钙奶",at:3)

删除数组最后的一个元素:

exampleOfArray.removeLast()
//删除指定位置的元素:
exampleOfArray.remove(at :0)
//数组转化成集合
var exampleOfArray = ["糖醋里脊","宫保鸡丁","水煮鱼","鱼香肉丝","大盘鸡","大盘鸡"]
var exampleOfSet = Set(exampleOfArray)

把变量声明为集合

//即使里面有重复的元素,声明完成后也不会有重复的了
var exampleOfSet:Set =["糖醋里脊","宫保鸡丁","水煮鱼","鱼香肉丝","大盘鸡","大盘鸡"] 

添加和删除元素方法:

exampleOfSet.insert("AD钙奶")//新增一个元素
exampleOfSet.remove("AD钙奶")//删除一个元素,如果集合里没有该元素,则返回nil
var exampleOfDictionary =Dictionary<String,Int>()

等同于:

var exampleOfDictionary = [String:Int]()

添加新值,用updateValue方法会返回修改前的值;如果修改前的值不存在于字典中,则会新增这个键值对,同时返回nil。

var exampleOfDictionary = ["年龄":25,"身高":175]
let oldValue = exampleOfDictionary.updateValue(20, forKey:"年龄")

当要移除键值时只需要把这个值赋nil就可以了。

10.控制流

var index1 =5
var index2 =5
while index1 >5{
//不符合循环条件
index1 -=1
print(index1)//不会执行
}
repeat{
index2 -=1
print(index2)//输出4
}while index2 >5//不符合循环条件,跳出循环。

未完待续

上一篇 下一篇

猜你喜欢

热点阅读