swift

swift中用let定义常量,定义之后不可以修改

swift中用var定义变量,定义之后不可修改

在使用当中,建议先定义常量,如果需要修改再定义为变量

let a: Int = 10   //本质上保存的是一个内存地址
//创建一个常量对象
let view : UIView = UIView();   //创建对象
//可以修改view的属性
view.backgroundColor = UIColor.redColor()
view.frame = CGRectMake(0,0,100,100)
view.aloha = 0.5
view.hidden = true  //BOOL:  true false

swift中的数据类型

整形

有符号
int8:有符号8位整形
int16:有符号16位整形
int:平台相关

浮点型:

Float:32位浮点型
Double:64位浮点型

类型推导:

注意:如果在定义一个标识符,直接对这个标识符赋值,那么标识符后面的类型可以省略。
swift会自动推导出值的类型。

let a = 10  //可以进行自动类型推导,推导出a为Int整形
let b = 2.44  //Double类型
let view = UIView()    //UIView类型

Swift中的基本运算

swift是强类型语言,因此swift中参与运算的类型必须保持一致,否则就会报错。

let m = 20
let n = 3.14
let result = m + n   //会报错


let tempM = Double(m)   //强制类型转换成Double类型
let result = tempM + n

//将浮点型转成整形:Int(标示符)
let tempN = Int(n)     //强制类型转换成Int类型

逻辑分支

  1. if分支语句
if 判断句 {
   //代码
}
//注意:swift中不再有非0即真,非空即真的概念,必须有明确的真假
//判断句的小括号可以省略,加上也不错算
if a > 0 {
   print("a大于0")
} else {
   print("a小于等于0")
}

  1. switch case分支语句
//区别
1.switch后面的小括号可以省略
2.break也可以省略,系统会帮我们加上去,不会发生case穿透
switch age{
    case 0: 
    print("年龄0")
    case 1:
    print("年龄1")
}

基本用法的补充:如果希望某一个case中产生case穿透,那么这个时候可以在case结束后跟上fallthrough
case后面可以判断多个条件,多个条件以,分隔
switch age{
    case 0,1: 
    print("年龄0或者1")
    case 2:
    print("年龄2")
}

特殊用法:
可以判断浮点型
let a = 3.14
switch a {
   case 3.14:
   print("π")
   default:
   print("非π")
}

可以判断字符串
let m = 20
let n = 10
let options = "+"
switch options {
    case "+":
    print(m + n)
    case "-":
    print(m - n)
}

switch可以判断区间
swift中的区间常见有两种
开区间:0..<10 表示0-9,不包含10
闭区间:0..10表示0-10,包含10

let score = 88
switch score{
case 0..<60:
  print("不及格")
case 60..100:
  print("及格")
}


  1. 三目运算符
let result = m > n ? m : n
//和之前用法完全一致
  1. guard的使用

guard与if语句非常相似,guard语句必须带有else语句

guard 条件表达式 else{
   //条件语句
   break;   //条件语句为false时执行else语句中的内容,跳转语句一般是return,break,continue,和throow
}
条件为真会执行该块代码


//具体使用,guard只能在函数中使用
let age = 10;
func demo(age : Int){
   guard age >= 18 else{
      print("不能去上网")
      return    //必须加跳转语句
   }
   print("可以去上网")
   
}

for循环的使用

for var i = 0; i < 10; i++{
   print(i)
}

//for in写法

for i in 0..<10 {
   print(i)
}
//在swift中如果一个标志符不需要使用,可以使用_来代替
for _ in 0...9{
   print("hello word")   
}

Swift字符串

在Swift中字符串类型是String,定义字符串不加@,直接用""

定义字符串:

//1.定义字符串
let opration = "+"
let str = "hello world"
//2.遍历字符串
for c in str.characters{
   print(c)
}

//3.字符串的拼接
let str1 = "wly"
let str2 = "ggg"

let str3 = str1 + str2  //拼接之后的

//4.字符串和其它标识符之间的拼接

let name = "wly"
let age = 18
let height = 1.88

let person = "my name is wly, my age is \(age), my height is \(height)"

//5.字符串格式化

//6.字符串的截取
let urlString = "www.520it.com"
//将string类型转成NSString类型

let header = (urlString as NSString).substringToIndex(3)

Swift中类的使用

类的定义

class 类名 : superClass{
    
}

注意:定义的类,可以没有父类,那么该类是rootClass

class Person {
    var age : Int = 0
}
let p = Person()
p.age = 10

//继承自某一属性
class Person : NSObject{
    var age : Int = 0
    //如果是重写父类方法,必须加上override
    override func setValue(value : AnyObject?, forUndefinedKey key: String){}
}
p.setValuesForKeyWithDictionary(["age" : 18, "name": "wly"])

定义类的属性

Swift中的属性有多种
  存储属性:存储实例的常量和变量
  计算属性:通过某种方法计算出来的属性
  类属性:与整个类自身相关的属性
//定义存储属性
class Student : NSObject {
   //定义属性
   //定义存储属性
   var age :Int = 0
   var name : String?
   
}

let stu = Student()
stu.age = 10
stu.name = "xxs"
print(stu.age)
if let name = stu.name {
  print(name)
}

//
class Student : NSObject {
   //定义属性
   //定义存储属性
   var age :Int = 0
   var name : String?
   var mathScore : Double = 0.0
   var chineseScore : Double = 0.0
   //定义计算属性,在swift中,如果使用当前对象的某一个属性,或者调用当前对象的某一个方法时,可以直接使用,不需要加self
   var averageScore:Double {
        return (mathScore + chineseScore) * 0.5
    } 
   
}

let stu = Student()
stu.age = 10
stu.name = "xxs"
stu.mathScore = 78
stu.chineseScore = 59.9
print(stu.averageScore)
//
class Student : NSObject {
   //定义属性
   //定义存储属性
   var age :Int = 0
   var name : String?
   var mathScore : Double = 0.0
   var chineseScore : Double = 0.0
   //定义计算属性,在swift中,如果使用当前对象的某一个属性,或者调用当前对象的某一个方法时,可以直接使用,不需要加self
   var averageScore:Double {
        return (mathScore + chineseScore) * 0.5
    } 
    //定义类属性
    static var courseCount : Int = 0
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值