前端之家收集整理的这篇文章主要介绍了
swift基础之<二>,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//类型安全,swift中不支持隐式转换
//var c = 100
//var c1 = 100.85
//
//let res = c + c1
//总结:swift 中不同数据类型,不能赋值和运算
//---------循环语句---------
//for in /for/while/ do while
var sum_1 = 100
while(sum_1 > 50)
{ //--,++ 不能空格
sum_1--
print("sum_1 \(sum_1)")
}
//do while
repeat{
sum_1--
print("sum_1 \(sum_1)")
}while(sum_1 > 50)
//总结:do while 换成了repeat while 其他语法没有改变
//分支语句
// if else
var girlfriend = (name:"XXX",age:30)
if girlfriend.age <= 18
{
print("too young too naive")
}else if girlfriend.age > 18 && girlfriend.age <= 22
{
print("I want you")
}else if girlfriend.age > 22 && girlfriend.age <= 30
{
print("not bad")
}else
{
print("OMG")
}
//Switch
let source = 68;
switch source
{
case 0..<60:
print("不及格")
case 60..<80:
print("及格")
fallthrough
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
case 100:
print("满分")
default :
print("输入有误")
}
//Switch判断条件可以是字符串
let let_str = "lee"
switch let_str
{
case "zz":
print("doubi")
case "lee":
print("cool")
default:
print("yeah")
}
let point = (0,0)
switch point
{
case (0,0):
print("原点")
case(0,_)://占位符_
print("y轴上")
case(_,0):
print("x轴上")
default:
print("其他")
}
/*
1:switch不需要加break,也就是默认没有贯穿,判断条件不用加()
2: 如果想实现贯穿需要加 fallthrough
3: switch可以以字符串和元组作为判断条件
*/
//----------函数----------
//1.无参无返回值函数
func method1() ->Void
{
}
//省略版 无参无返回值函数
func method2()
{
print("我是无参无返回值的函数")
}
//2:无参有返回值
func method3() ->String
{
return "wp"
}
let func_str = method3()
print(func_str)
//3.有参无返回值
func method4(A:Int,B:String,C:Float) ->Void
{
}
//4.有餐有返回值
func method5(A A:Int,B:Int) ->Int
{
if A > B
{
return A
}else
{
return B
}
// return A > B ? A : B
}
let func_int1 = method5(A : 100,B : 25)
print(func_int1)
//5.有参有返回值(返回多个值)
func method6 (name:String,age:Int,gender:String) ->(String,Int,String)
{
return("ez",18,"boy")
}
print(func_int1)
let fun_str_2 = method6("s",age: 12,gender: "female")
print(fun_str_2.0)
//交换函数参数的值(如果改变参数函数,需要在参数前面加一个关键字:inout)
func method7(inout A:Int,inout B:Int) ->Void
{
let temp = A
A = B
B = temp
}
var A = 100
var B = 999
method7(&A,B: &B)
print(A)
//---------------------------枚举-----------------------
enum Season : Int
{
case Spring = 0
case Summer
case fall
case winter
}
//根据C语言对比,枚举多了Case关键词,不用加逗号“,” Swift中枚举为 int 类型的, 不会默认从0开始
let enum_1 = Season.Spring
//typealias Newname = Season
switch enum_1
{
case.Spring:
print("春天")
case.Summer:
print("夏天")
case.fall:
print("秋天")
default:
print("冬天")
}
print(enum_1)
//总结:Switch用枚举作为判断条件,case后面是用“.”来获取枚举的值
//switch中,当所有case条件满足,default可以省略,若不满足必须加default
//第二种枚举(可以用字符串定义枚举值)
enum Season2:String
{
case Spring = "春天"
case Summer = "夏天"
case Autumn = "秋天"
case Winter = "冬天"
}
//----------------结构体--------------
// Swift结构体,相当于swift中的类。结构体是值类型(重新拷贝一份值,修改拷贝的值对原来的值没有影响,类是引用类型(共用一个内存地址,原值会改变影响新值)
struct Person {
//对象的属性
var name: String
var age : Int
//对象的方法
func sayHello()->Void
{
print("你好")
}
//类方法
static func sayHi() ->Void
{
print("HI")
}
//类属性
static var personName:String?
}
//生成一个对象
let per1 = Person(name: "z",age: 21)
//调用对象方法
per1.sayHello()
//输出对象的名字
print(per1.name)
//调用类方法
Person.sayHi()
Person.personName = "lisi"
var p1 = Person.init(name: "lol",age: 111)
var p2 = p1
print(p2.name)
p1.name = "zzz"
print(p2.name)
print(Person.personName!)
//类
class Student {
var name: String?//类,声明属性必须用可选方法
var age: Int?
func sayFuck()->Void
{
print("fuck")
}
static var studentName:String?
}
var stu1 = Student()
stu1.name = "www"
stu1.age = 35
var stu2 = stu1
print(stu2.name)
stu1.name = "hole"
print(stu2.name)