//swift后面没有分号。。加分号不会报错。。但是规定不能加分号
//引入框没有分号 直接写就OK
//swift不要加@号
print("娜娜")
//常量与变量
//swift常量与变量可以不写类型。系统可以自动判断
//在加一条语句必须用分号分隔
var a = 10 ; a = 20
//常量
let b=10
var 🏈=20
b + 🏈
//当变量有小数点。就会推到Doublevar c=66.6
//类型 转换 强制转换
var nana:Int = 100
var ming:Float = 99.9
var cuaina:String = "陈娜"
var xunming:Character = "m"
//swift中不支持隐式转换
//oc中强制转换Float a
Float(nana) + ming
//字符串var xiaona="娜娜"
// YES/true NO/false
var isTrue:Bool = true;
isTrue=xiaona.isEmpty
//字符串长度.字节长度
//xiaona.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
xiaona.characters.count
//空
var abc = " "
var abcd = String()
//拼接字符串
var 明 = "明"
var 娜 = "娜"
明+"👀"+娜
//可以把对象或变量直接写在括号print(明)
//判断字符串是否相等
明==娜
var smile:String = "我去"
var cry:String = "靠"
//字符串交换
var e1 = "a"
var e2 = "b"
//var e3 = e1
// e1 = e2
// e2 = e3
swap(&e1, &e2)
e1
e2
//数组
var array1:Array=["小明","小娜","小怡"]
var array2 = ["爱","懓","暧"]
//声明空数组,都是string类型数组
var array3 = Array()
//是string类型数组
var array4 = [String]()array2[1]="懓"
//添加元素
array1 += ["何必","那么","漂亮"]
array1.append("(⊙v⊙)嗯")
array1.appendContentsOf(["520" , "250"])
array1.appendContentsOf(["O(∩_∩)O~" , "250"])
//添加小标下元素
array1.insert("如果结婚啦", atIndex: 6)
array1.insertContentsOf(["呵呵"], at: 0)
//删除最后元素
array1.removeLast()
//删除指定元素
array1.removeAtIndex(0)
//所有array1.removeAll()
//字典
var dict1:Dictionary=["a":10]var dict2 = ["b":20]
//空字典
var dict3:Dictionary= [ : ]var dict4=Dictionary()
dict3=["b":"c"]
dict3.removeValueForKey("b")
//删除所有
dict3.removeAll()
//元组.类似c语言结构体。。。可以存放字典 数组 ,而且可以存放一起
var aaa = ("b",["a":"b"],["a","b","c"],"a")
aaa.0
aaa.1
aaa.2[2]
aaa.3
//循环结构
//for(NSInteger i=1,i<10,i++)
//{
//}
//swfit3.0之前
for var v = 0 ; v < 2 ; v++
{
print(v)
}
//【0,10】是零到十包括 0与10
for f in 0...10
{
print(f)
}
//【0,10】不包括0 与10
for f1 in 0..<10
{
print(f1)
}
var f2=10
while f2<100
{
f2+=1
print(f2)
}
//repeat。。while
repeat
{
f2 += 1
}
while f2 < 1000
//判断
if a==10 {
print("在吗")
}else{
print("陈娜")
}
//var a = 10
//不写break会执行
switch(a)
{
case 20:
print("chu")case 10:
print("chuai")default:
print("chuaina")
}
//枚举中直接取值 只能取到等号左边 rawValue加上去右边值
enum couples :String
{
case xiaoming="陈娜"
case chenna="浔明"
case xxx="不看就不看"
case yyy="呵呵"
}
var hehe = couples.xxx.rawValue
enum hahaha:Int
{
case a=1
case b=2
case c=3
case d=4
}
//四中类型
//无参数无返回值
//-(void)text
func text()
{
print("我去")
}
text()
//无参数有返回值
//-(int)text1
func text1()->Int
{
return 10
}
text1()
//有参数无返回值
//第一个参数不显示 要在前面加上num1
func text2(num1 num1:Int,num2:Int)
{
print(num1 + num2)
}
text2(num1:10,num2:10)
//有参数有返回值
func text3(num1:Int,num2:Int)->Int
{
return num1 + num2
}
text3(10,num2: 10)
//元组作为返回值
func yuanzu(num1:Int,num2:Int)->(Int,Int)
{
return(num1+num2,num1*num2)
}
yuanzu(10, num2: 10)
//函数嵌套
func text4()
{
print("1")
func text5()
{
print(2)
}
text5()
}
/*
外部参数:外部调用可看到
内部参数:内部运行需要用到的参数
func text(外部函数1 内部函数:Int,外部函数2:Int)->返回值
{
return 内部函数+外部函数2
}
text(外部函数:10 , 外部函数10)
*/
//在函数中,所有参数类型都是let修饰的。。所以要改变的话,就必须外部声明Var
func text7(inout num1:Int,num2:Int)
{
num1=100
print(num1+num2)
// return num1+num2
}
var number1 = 10
var number2 = 10
text7(&number1, num2: number2)
print(number1)
//简单计算器
//要求外界转入2个数一个符号
func jisuanqu(num1:Float,Fuhao:Character,num2:Float)->Float
{
switch(Fuhao)
{
case "+":
func jia(a:Float,b:Float)->Float
{
return a+b
}
return jia(num1, b: num2)
case "-":
func jian(a:Float,b:Float)->Float
{
return a+b
}
return jian(num1, b: num2)
case "*":
func cheng(a:Float,b:Float)->Float
{
return a+b
}
return cheng(num1, b: num2)
case "/":
func chu(a:Float,b:Float)->Float
{
return a+b
}
return chu(num1, b: num2)
default:
return 0
} }