美文网首页
Swift初级(一),课堂代码

Swift初级(一),课堂代码

作者: bu再等 | 来源:发表于2016-03-15 11:49 被阅读74次

    //  main.swift

    //  Swift初级(一)

    //  Created by  on 15/11/2.

    //  Copyright © 2015年  All rights reserved.

    //当需要导入类库的时候,使用import 类库名,不用再加<>或者""

    //

    import Foundation

    print("Hello, World!")//在swift中,使用print输出

    //1.定义常量(let)和变量(var)

    //定义常量

    let myGender = "男"//commond+ctrl+空格可添加表情

    //myGender = "女"  //因为myGender是用let修饰的

    //定义变量

    var carName = "BMW"

    carName = "Audi"  //因为carName是用var修饰的

    //Swift定义变量或者常量的时候,需要标识出变量或者常量的类型,如果不标识,会根据初始值自动的推断。

    let name = "Jack"  //会自动推断为String,由后面的值来决定name的类型

    //let name:String = "Jack"//由前面的类型String,决定后面赋什么类型的值.即后面值的类型要和String一致

    let age:Int = 3  //注意:如果是使用let修饰,必须赋初值;如果是使用var修饰,可以不赋初值

    var age1:Int? //'?'表示当前age1是可选类型,其值可以为空

    print(age1)

    //定义一个字符类型的变量

    var char:Character = "A" //此时char就是一个字符,切记其值也是用""的,只能放一个字符

    //定义一个Bool类型的变量(值只有true,flase)

    var flag:Bool = true

    /***** 字符串String******/

    //(1).创建一个空串变量

    var str_empty = ""

    var str1_empty = String()

    //(2).通过字符串对象的isEmpty方法判断是否为空

    if str_empty.isEmpty{  

    //if 后面的判断条件(表达式,方法..)的返回值,必须是Bool类型的    

    print("str_empty is empty!!")

    }

    //(3).拼接字符串

    var str_url = "http://"var

    str = "www.lanou3g.com"

    let urlString = str_url+strprint(urlString)

    print("蓝鸥官网:\\(urlString)\\n")//插入式取值 \\(变量名)

    //(4).获取字符串长度

    var str1:String = "abc"

    print(str1.characters.count)

    //(5).字符串插值

    let mul = 4

    let content = "\\(mul)*2.5 = \\(Float(mul)*2.5)"

    print(content)

    //(6).字符串比较

    let str2 = "xiaoxiao"

    let str3 = "lanou"

    if str2 != str3{  // ==    

    print("两个字符串不相等!!!")

    }

    /***********数组(Array)********/

    //Swift的数组里面存储的所有数据 都必须是同一类型的。如果需要使用不同类型的,可以使用OC的数组

    //定义一个数组变量

    var nameArray = ["张三","李四","王五"]

    var nameArray1:Array= ["张三","李四","王五"

    ]let array = Array()  //定义一个字符串型空数组

    var int_arr = [Int]() //定义一个整型空数组

    //访问数组中某个元素

    print("第二个元素\\(nameArray[1])")

    print(nameArray[0])

    //向数组中添加一个元素

    var int_arr1 = [Int]()int_arr1.append(10)int_arr1.append(20)

    // 使用运算符重载向数组中添加一个元素

    int_arr += [1]// 使用运算符重载向数组中添加多个元素

    int_arr += [1, 2, 3]print(int_arr1)//在数组中的某个位置,插入一个元素

    int_arr1.insert(30, atIndex: 0)print(int_arr1)//移除数组中某个位置上的元素

    int_arr1.removeAtIndex(2)print(int_arr1)//移除数组中所有元素

    int_arr1.removeAll()print(int_arr1)

    /***********字典(Dictionary)*******/

    //定义一个字典变量var dictionary:Dictionary= ["a":10,"b":20]//定义个空字典变量var dictionary1:Dictionary= [:]var dictionary2 = Dictionary()

    //向字典中添加一个键值对

    dictionary["c"] = 30

    print(dictionary)

    //修改字典中某个键值对的值

    dictionary["a"] = 50

    print(dictionary["a"])

    //删除字典中的一个键值对

    dictionary.removeValueForKey("a")

    print(dictionary)

    /***************元组*****************/

    //定义一个元组变量

    //方法一:直接初始化一个元组,通过隐式类型推断确定每一个元素的类型

    let status = ("蓝鸥1班",["iOS","Html5"])

    //方法二:显示的标识出元素的类型

    let statusNews:(String, Array) = ("蓝鸥1班",["iOS","Html5"])

    //取出元祖中的值的方法:

    //方法一:直接赋值给常量,并通过使用标记名来获取对应的值

    let statu:(classroom:String,course:Array) = status

    var classInfo = statu.classroom + statu.course[0] + statu.course[1]

    print(classInfo)

    //方法二:直接通过下标获取元素的值

    var classInfos = statu.0 + statu.1[0] + statu.1[1]

    print(classInfos)

    print(classInfos)

    status

    /*************循环********/

    //extension

    //第一种形式:

    for var i = 1; i<10;i++

    {

    print(i)

    }

    //第二种形式:

    for number in 1..<10{

    print(number)

    }

    //第三种形式:

    for number in 1...10{

    print(number)

    }

    //while,repeat...while

    var i = 5

    while i > 0{

    i--

    print(i)

    }

    repeat{       //先执行循环体,再判断条件

    print("repeat...while")

    }while 1<0

    //使用for循环遍历数组

    var animalsArray = ["dog","cat","tiger","pig"]

    for a in animalsArray

    {

    print(a)

    }

    //使用for循环遍历字典

    var animalsArray1 = ["dog":"","pig":""]

    for (key,value) in animalsArray1{

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

    }

    /********分支结构(if...else,switch...case)******/

    //if结构

    let flag1 = true

    if flag1 == true

    {

    print("flag=\\(flag1)")

    }else{

    print("flag=\\(flag1)")

    }

    //switch...case

    //特点1: switch中实现贯穿,使用关键字fallthrough

    let value = 0

    switch value{

    case 0:

    print("0")

    fallthrough

    case 10:

    print("10")

    fallthrough

    default:

    print("Other")

    }

    //特点②: case后面可以是一个范围

    switch value{

    case 0..<10:

    print("范围是在0..<10,不包括10")

    case 10...100:

    print("范围是在10...100,包括100")

    default :

    print("Other")

    }

    //特点③: case后面可以定义一个变量(let,var修饰都可以),where后面是定义这个变量需要满足的条件

    switch value {

    case var i where value>=0 && value<10:

    i = 20

    print(i)

    default:

    print("Other")

    }

    //特点4: switch...case可以匹配一个元组

    let point = (10,10)

    switch point{

    case (_,10):       // '_'代表忽略

    print("case1") //默认带有break

    case (10,0):

    print("case2")

    case (10,10):

    print("case3")

    default:

    print("Other")

    }

    /*********枚举(enum)**********/

    //原始类型是Int型的枚举

    enum Direction:Int

    {

    case east = 0

    case south = 1

    case north = 2

    case west  = 3

    }

    print(Direction.east.rawValue) //rawValue打印原始值

    //原始类型是String型的枚举

    enum Season:String{

    case spring = "春天"

    case summer = "夏天"

    case winter = "冬天"

    }

    print(Season.summer.rawValue)

    //Direction(rawValue:2)表示:通过原始值2,获取一个枚举成员,这个成员的类型是Direction

    //dir 类型为 Direction? 值为 Direction.north

    let dir = Direction(rawValue: 2) //表示取的是原始值为2那个别名(north)

    dir?.rawValue

    print(dir)

    print(Direction.south.rawValue)

    /*********函数********/

    //表示函数的关键字 func

    //函数的类型分为:四种

    //1.无返回值 无参

    func function1() -> Void{

    print("无返回值,无参")

    }

    function1()

    //2.无返回值 有参

    func function2(name str:String) ->Void{

    print(str)

    }

    //function2("蓝鸥")

    function2(name: "蓝鸥")

    //3.有返回值无参

    func function3() -> String{

    return "Hello"

    }

    let string = function3()

    print(string)

    //4.有返回值有参

    func function4(a:Int ,b:Int) ->Int

    {

    return a+b

    }

    let result = function4(3, b: 4)

    print(result)

    //5.函数的返回值为元组类型(利用元组实现函数返回多个值)

    func sumMulMinus(number1:Int,_ number2:Int) ->(Int,Int,Int){

    return(number1 + number2,number1 * number2,number1 - number2)

    }

    //

    //sumMulMinus(5, number2: 2)

    sumMulMinus(5, 2)

    //内部参数和外部参数

    //内部参数名:在函数内部使用的参数名称

    //外部参数名:在函数调用时候,显示的参数名称

    //默认情况下,函数的第一个参数,不显示外部参数名,其余参数,显示外部参数名,并且和内部参数名一致

    func  text(first one: Int,second two: Int){

    print(one, two)

    }

    text(first: 10, second: 10)

    //如果不想要显示外部参数名,使用“_”忽略掉

    func text1(one : Int, _ two : Int) {

    print(one, two)

    }

    text1(10, 20)

    // inout参数

    // 参数默认是常量:let

    // 在参数前面添加var修改,就可以修改参数

    // 如果参数使用inout来修饰,就成了输入输出参数,在函数内部修改参数,可以影响外部变量的值

    func test8(inout name: String) {

    name = "LIZE"

    print(name)

    }

    var myName = "lize"

    test8(&myName)

    print("myName: " + myName)

    // 参数前面用var修饰,修改参数

    func test9(var name : String) {

    name = "LIDAZE"

    }

    //函数嵌套

    func test1(){

    func test2(){

    func test3(){

    print("test3")

    }

    test3()

    print("test2")

    }

    test2()

    print("test1")

    }

    test1()

    相关文章

      网友评论

          本文标题:Swift初级(一),课堂代码

          本文链接:https://www.haomeiwen.com/subject/fyxqlttx.html