swfit 略讲

Swift以空格为结束 不用打分号

print为输出函数

let修饰常量 是不可以更改的
var修饰变量 可以更改

//定义一个常量
// 第一个定义常量的方式
// 定义之后,后面的值只能是字符串,因为提前指定了常量的类型
let name : String = "哈哈哈"

// 第二个定义常量的方式
// 使用的是一个特性 隐式类型推断,由初始值来推断常量的类型
let gender = "男"

// 使用let定义的常量的值永远不可以更改

// 第一个定义变量的方式
var age = 100

// 第二个定义变量的方式
// Swift 在定义一个变量或者常量的时候,必须要有确定的类型
var height : Int = 140;

let a : Int = 10
let b : String = "Hello"
let c : Character = "A"

//swift 里bool值 是个枚举类型,只有false true
let bool : Bool = false;

// 不支持 隐式类型转换
var width = 100

// Swift 中不支持隐式类型转换,不可以将两个不一样类型的变量或常量直接进行四则运算
// 如果想要对两个不一样数据类型的变量或者常量进行运算,需要使用这样的格式:变量(常量) A +-*/ 目标类型(B)
var cc = height + Int(width)
print(cc)

let aa = "皮卡丘"
let bb = "金闪闪"
//运算符重载 当对两个字符串的类型做假发操作的时候 会自动拼接到一起
let dd = aa + bb

print(dd)

上面都注掉


// 创建一个字符串类型的常量
let string = "皮卡丘"
print(string)

//创建一个值为空的字符串
let string1 = ""
print(string1)

//创建一个值为空的字符串
let string2 = String()
print(string2)

var name = "里维斯"

var newName = name + "好贵"
print(newName)

//获取字符串长度
print(newName.characters.count)

// 变量交换
var a : String = "输出a"
var b : String = "输出b"
var c : String = String()

c = a
a = b
b = c

print("打印a输出 : (a)")

print("打印b输出 : (b)")

上面都注掉


数组

// 定义一个String 类型的数组
var array = ["张三","李四","王五",2]
print(array)

//如果数组里面保存的数据都不是一类型的,那么数组的类型都是NSObject
var arr1 = ["科比","费舍尔","奥尼尔",5]
print(arr1)

//提前指定数组的类型
var arr2 : [Int] = [1,2,4]
print(arr2)

//Swift 可以通过直接访问数组下标 改变数组的值
arr1[3] = "奥多姆"
print(arr1)

// 向数组中添加一个元素
arr1.append(24)
print(arr1)

// 另一种添加方式
arr1 += [2]
print(arr1)

//指定位置添加
arr1.insert("加索尔", atIndex: 1)
print(arr1)

//向数组中插入一个集合类型的数据(这个集合要和数组是同一类型)

arr1.insertContentsOf(array, at: 2)
print(arr1)

//全部删除 (let 不能删除 使用let定义的常量的值永远不可以更改)
//array.removeAll()
//print(array)

//删除第一个
//array.removeFirst()
//print(array)

//删除最后一个
//array.removeLast()
//print(array)

//删除指定一个
//array.removeAtIndex(2)
//print(array)

//删除一个区间 删除 1 和2
let range : Range = Range.init(start: 0, end: 2)

array.removeRange(range)

print(array)

上面都注掉


字典

//定义一个字典 字典无序
let dic = ["a" : 1, "b" : 2]

//如果字典里key的类型不同 那么key的类型就是NSObject
let dic1 = ["a" : 1 , 2 : "b"]

//提前指定key 和 value 的类型 创建一个字典
let dic2 : [Int : String] = [1 : "a" , 2 : "b"]
print(dic2)

//可以直接通过key访问字典中的元素
print(dic2[1])

//通过key 替换
var dic3 = ["科比" : "库里" , 24 : 30]

dic3["科比"] = "詹姆斯"
dic3[24] = 23
print(dic3)

//在字典中如果没有要修改的数据,就变味插入一条数据
dic3["汤普森"] = 11
print(dic3)

//让某一个值为nil 表示要删除这个key
dic3[24] = nil
print(dic3)

上面都注掉


元组

把多个值组合成一个复合值 并且不要求类型

let type : (String , Int) = ("哈哈" , 100)
let type1 : (name : String , age : Int) = type
print(type1.age)
print(type1.name)

//新建字典
var dic = ["学号" : 1 , "姓名" : "王" , "性别" : "男" , "年龄" : 15]
// 存到数组里
var arr = [dic]

//字典 和数组 都存到元组里
var typ = (dic,arr)
print(typ)

上面都注掉

循环 和 分支 结构

//使用repeat关键字来代替了do
var num1 = 0
repeat{

num1 += 1

print(num1)

}while num1 < 10

//可选值
// 在变量的类型后面添加一个? 表示这个变量为可选类型,可以置为nil
var a : String? = nil

var string : String? = "asdf"
//Swift 判断要求写全
if (string != nil) {
print(string)
}

let age = 20
// 在Swift里面每一个case 里面自带一个break
switch age {
case 1 :
print("age = 1")
case 2 :
print("age = 2")
case 3 :
print("age = 3")
case 4 :
print("age = 4")
default :
print("age = 5")
}

// Swift 中的switch 可以根据区间去获取值
switch age {
case 0...10 :
print("小屁孩")
case 11...20 :
print("中屁孩")
case 21...30 :
print("大屁孩")
default :
print("特大屁孩")
}

var aa = 1
switch aa {
case var value where aa < 10 && aa > 0 :
value++
print(value)
default :
print("error")
}

let point = (100,100)
//Swift 中的switch 可以对一个元组做判断
//表示忽略元组中这个位置的元素
switch point {
case (10,10) :
print("第一象限")
case (
, 10) :
print("在y为10的线上")
case (10 , ) :
print("在x为10的线上")
case (
, _) :
print("随意了")
}

上面都注掉


函数

// 无参无返回值
// 无参有返回值
// 无参有多个返回值
// 有参无返回值
// 有参有返回值
// 有参有多个返回值
// inout函数

//有参有返回值
//返回数组
func text3(name : String , age : Int) -> Array {

let arr : Array = [name , age]
print(arr)
return arr

}
text3("卡卡", age: 10)

//函数外部参数名,第一个名字表示外部参数名,当外界使用这个函数的时候使用的名字.第二个参数表示内部参数名,当函数里面使用这个参数的时候使用的名字

func text(number myNumber : Int , name myName : String) {
print("我的姓名是(myName), 我的号码是(myNumber)")
}
text(number: 100, name: "张三")

//无参有多个返回值
func text4() ->(String , Int) {
return ("张三",108)
}
let type = text4()
print("(type.0) , (type.1)")

//有参有多个返回值
func text5(name : String , age : Int) -> (String , Int) {

return (name , age)

}
let type2 = text5("皮卡丘", age: 15)
print(type2)

//函数嵌套
//相当于oc中方法 调用 方法
func text6() {
func text1() {
print("我是第一层嵌套函数")
func text2() {
print("我是第二次嵌套函数")
func text3() {
print("我是第三次嵌套函数")
}
text3()
}
text2()
}
text1()
}
text6()

inout 函数

// inout 函数 改变函数外面变量
//Swift 中函数 本身用let 定义的,是不能更改的 如果想要更改可以使用var
func text7(inout name : String) {
name = "李四"
}

var name = "asd"

text7(&name)

print(name)

你可能感兴趣的:(swfit 略讲)