标签:
// Playground - noun: a place where people can play
import UIKit
// swift语言没有Main 函数 ,main函数是封装在自己的框架里的
// 一行的注释用 //
// 多行的注释,或者代码块 用 /* */
// 区别于OC中的
/*
/*
*/
*/
// println 是swift 1.2之前的;在swift 2.0 输出改为 print
var str = "Hello, playground"
// swift 变量命名规则
// 1. 不能于系统关键字重名,但是可以用``来修饰关键字来命名
// 2. 不能以除_以外的其他符号开头;_不能单独座位变量名
// 3.不能用左右箭头,← →,命名
// 4. 不能用数字开头
/*
常量,变量
*/
// 常量 : 在swift中用let修饰
let a = 2 // swift 中不用;号结尾
let `let` = 1
// 指定类型常量
let typeDefineA : Int = 10
let typeDefineB : Float = -19.05;
// 取绝对值的函数
abs(typeDefineB)
// 输出typeDefineA
print(typeDefineA)
// 变量 用var修饰
// 如果不指定类型,系统会自己判断
var typeNotDefineB = 10.1254
var typeDefineC:Int = 10
/**
* 类型转换 swift中如果类型不一样,不能进行与运算操作
*/
let typeNotDefineD = typeDefineC+Int(typeNotDefineB)
// 1. 整形 Int Int8 Int16 Int32 Int64
// 无符号整形
Int.max // Int 最长
Int.min
UInt.max
UInt.min
// 2. 字符和字符串
let charactor = "a"
var charactor1 : Character = "a"
// swift中 定义字符串的时候,没有@符号
var stringA = "abc"
// 求字符串长度
countElements(stringA)
// swift 2.0 以后 求字符串长度
//stringA.characters.count
// 求大小写
stringA.uppercaseString
stringA.lowercaseString
// 字符串拼接
var stringB :String = "def"
stringA + stringB
// 截取字符串
// swift 中对所有的unnicode编码,可以用汉字做变量名,常亮名
var 小鹏 = "人"
var ?? = "苹果"
var 苹果 = "??"
//苹果 = 小鹏 +??
// 3. 数组
var emptyArr = [String]()
var emptyIntArr = [Int]()
var myArr = ["小明","小黄","小彬"]
var intArr = [1,2, 3,"4"]
/**
* 如果创建的时候 指定了元素的类型,赋值时,必须为赋值类型,否则报错
*/
// 增加元素
myArr += ["你"]
myArr.append(" 好")
var 颜色 = ["蓝色", "绿色"]
培训机构.append("黑")
// 修改
培训机构[0] = "蓝翔"
// 删除 在swift中bool 只有true false
//机构.removeAll()
机构.removeAtIndex(0)
print(机构)
机构.removeLast()
// 元组
var person = (name :"小明",age:18)
person.name
person.age
person.1
person.0
var student = ("江湖",100)
// 5. 字典
// 创建一个空字典 swift 中key的类型必须一致,如果不一致这个字典就变为OC中的字典了
// string key 的类型 ;Int Value 类型
var emptyDic = Dictionary<String,Int>()
var emptyArray = [String]()
var emptyDic1 : Dictionary<String,Int> = Dictionary()
// 字典赋值
var peopleDic = ["name":"小明","age":18]
// 增加元素 如果赋值的key存在,相当于修改,不存在相当于增加
peopleDic.updateValue("小兵", forKey: "name")
peopleDic.updateValue("??", forKey: "吃")
peopleDic
/**
* 删除 true 移除所有; false 移除内容,保留内存
*/
//peopleDic.removeAll(keepCapacity: true)
var indexDic = peopleDic.indexForKey("name")
peopleDic.removeValueForKey("吃")
print(peopleDic)
peopleDic.removeAtIndex(indexDic!)
/**
* 可选类型 optional "?"代表程序不知道值是否否为空 "!"代表程序知道一定有值
*/
var ?? :String? = "??"
var ?? :String! = "??"
if ?? != nil{
print("你傻不傻")
}else
{
print("你二不二")
}
/**
* 6. 分支结构 if...else
*/
var strNum = "1000"
// 可选绑定类型 在if 判断中 去判断是否有值 ,如果有值,将值付给另外一个变量,否则输出else语句
if let result = strNum.toInt(){
print(strNum)
}else{
print("strNum 不能转换为 Int")
}
//switch...case 在Swift中不需要break ;所有语句都是独立成行的.如过需要执行下面的语句,需要使用fallthrough
var numSwitch :Int = 1
switch numSwitch {
case 1:
print(numSwitch)
case 2:
print("2")
case 3:
print("4")
default:
print("5")
}
var strSwitch :String = "小黄"
switch strSwitch{
case "小明" :
print(strSwitch)
case "小雨":
print("美")
default :
print("好")
}
/**
* 范围性 Switch语句
*/
// 闭区间:[] ;半开半闭区间[)
// a...b代表[a ,b] , a...<b 代表 [a,b)
// where 只有在 Switch ... case 中使用,相当于OC中的逻辑与 ,只有同时满足 才执行
var intSwitch : Int = 10
switch intSwitch{
case 11:
print("11")
case 10...20 where intSwitch == 15:
print(intSwitch)
default:
print("22")
}
/**
* 元祖 switch...case 语句 (_,11) _画线表示略过这个位置的元素
*/
var point = (10,20)
switch point
{
case (0,5):
print("牛")
case(_,20):
print("??")
case(10,_):
print("??")
default:
print("??")
}
// 循环
// while 循环
var 循环语句 = 0;
while 循环语句 > 5
{
循环语句++
}
/**
* do...while 1.3
*/
// repeat ---- while swift 2.0
var do循环 = 0
//do
//{
// do循环++
//
//}while do循环 <5
//
//for 循环
for var i = 0; i < 10;i++
{
print(i);
}
// 数组遍历
var 动物园 = ["贾宁","观望","王嘉彬"]
for 动物 in 动物园
{
print(动物)
}
// 元祖遍历数组
for(下标,值) in enumerate( 动物园){
print(下标)
print(值)
print("\(下标),\(值)\n")
}
// 元组遍历字典
var 字典 = ["name":"小明","age": 18]
for (关键字,字典值)in 字典
{
print("\(关键字),\(字典值)")
}
// 遍历区间
for i in 10...20
{
print(i)
}
标签:
原文地址:http://www.cnblogs.com/fan-cong/p/4878463.html