您的位置:首页 > 移动开发 > Swift

Swift 基础知识Part1

2015-11-03 14:43 309 查看
import Foundation

// let定义是不可变的
let name="zc"
print(name)
//name="帅哥"

// var定义是可变的
var name1="cpj"
name1="帅哥"
print(name1)

// 在Swift 中会自己推断数据类型(也就是类型推断)
var age=18.0
age=28.0;

var age1=19;
var age2=18.4;

// 只有同一类型才能相加
//age+age1

var name2="jc"
var name3=name1+name2
// 如果是两个参数string类型的 加号就相当于oc中的拼接appending
print(name3)

// Swift 不仅支持英文变量 而且还支持中文和特殊符号变量名
var ��="旺旺"
print(��)

// 定义数组

var array=[12,12,145,14]

// 增  添加数组元素
array.append(13)
array.insert(180, atIndex: 0)
print(array)

// 删
array.removeAtIndex(1)
print(array)

// 改
array[0]=100
print(array)

// 定义空数组
var arr2=Array<String>()
arr2.append("呵呵")
print(arr2)
// 定义空数组 存放任意类型
// 如果是anyobject的数据 那么需要用any的类型来对其进行操作
var arr3=Array<AnyObject>()
arr3.append(19);
arr3.append("hehe")
print(arr3)

let min=arr3[0];
print(min)

let array1=["你好","哦哈呦"]

print(array1)

// 字典
var dict=["key1":"value1","key2":"value2"]
print(dict)

// 增
dict["key3"]="value3";
dict.updateValue("value4", forKey: "key4")
print(dict)

// 改
dict.updateValue("value5", forKey: "key1")
print(dict)

// 删
dict.removeValueForKey("key1");
print(dict)
print("这个字典里面的东西是\(dict)")

// 定义一个空字典

var dict1=Dictionary<String,String>()

// 元组
var yuanZU=(12,34,56,"你好","他好")
print(yuanZU.0)

var yuZu=(name:"江晨",age:"30",height:"180");
print(yuZu.height)
// 如果元祖里面元组个数过多 建议给类型起上自己定义的名字,如果不是很多的话,就用元组自己默认的下标

// 分支语句
// true 在swift中就是真的意思 相当于OC中的YES 假就是false
let bool = true
let bool1=false

if bool{

print("好爽")

}
else{

print("一点也不爽")

}

// 在switch 判断中 不需要写break,如果硬要继续执行下去 要加上fallthough

let 年龄=10
switch 年龄{

case 0:print("小屁孩")
fallthrough
case 10:print("大屁孩")
fallthrough

default:print("成精了")

}

// 在swift只能怪..<相当于半闭半开 ... 相当于闭区间(全部包括)
switch 年龄{

case 0..<10:
print("年轻人")
case 10...100:
print("老年人")
default:
print("成精了")

}

//定义while循环
var temp=5
while temp>0{

print(temp)
temp--

}

// 定义一个for 循环  写++和--的时候 一定要注意后面有空格 前面没有空格
for var i=0;i<10;i++ {

print(i)

}

// 定义for in
var animals=["��","��","��","��","��"]
for  a in animals{
print(a)

}

// 字典
var dic=["key1":"value1","key2":"value2","key3":"value3","key4":"value4"]

for(key,value)in dic {

print("\(key),\(value)")

}

//在swift中 _的功能是可以省略你不想要的东西
for(_,value) in dic {

print(value)
}

// 定义一个函数
// 无参无返回值
func test ()->Void{

print("你是谁")

}
test()

// 无参有返回值
func test1()->String{

return "你是谁"

}
var string=test1()
print(string)

// 有参无返回值

func test2(str:String)->Void{

print(str)

}

var str1="你是北京的老肥肥"
test2(str1)

// 有参有返回值

func test3(str:String)->String {

return str

}
var str3="江晨"
print(test3(str3))

// 无参无返回值 简便写法
func test4(){

print("哈哈哈哈")
}
test4()

// 有多个参数的函数
func test5(a:Int ,b:Int)->Int {

return a+b;

}

let a=3
let b=5

// 在swift中 定义函数的时候 第一个参数默认给参数名省略掉 如果硬要加上 那么就自己在第一个参数前面 再加一个前缀名
print(test5(a, b: b))

func test6(inout name:String)->Void {

name = "zichao"
print(name)

}

var name11 = "小子超"
test6(&name11)
// 如果你在定义函数的时候 想让这个参数可以改变值 那么需要在参数前加上inout

// 枚举
enum Season{

case Spring
case Summer
case Autumn
case Winter
}

print(Season.Spring)

enum Season1 :Int {

case Spring = 10
case Summer
}

// 在枚举中 如果你想取出原始值 需要使用rawValue取出
// 通过原始值 (也就是我们自己写的10)来取出我们定义的枚举名
print(Season1.Summer.rawValue)
//在swift中"!" 是代表强制解包
print(Season1(rawValue: 11)!)

// 结构体
struct rect {

// 定义结构体属性
var x:Float
var y:Float
var width :Float
var height:Float

//"?"是可选类型(可选类型并不是 给定的类型是可选的 而是初始值是可选的 也就是说用?修饰 可以不给初始值 但是用!修饰必须要给初始值) 也就是说用问号修饰 可能有值,也有可能没值 可以不在下面赋初值 如果用感叹号修饰 则必须要给它一个初始值

static var child:String?

func text(){

print("\(x),\(y),\(width),\(height)")

}
// 用static 修饰方法之后 相当于OC中的类方法
static func  text1(){

print(child!)

}
}

rect.child = "小孩"
rect.text1()

var rect1=rect(x: 10, y: 10, width: 100, height: 100)
rect1.text()

// 这里修改rect 里面的属性值 只能做修改 但是不能保存(也就是说原来rect的属性值没有发生改变)
rect1.x=100;
rect1.text()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: