首页 > 编程语言 > 详细

最基础的 swift 语言

时间:2015-12-18 21:13:07      阅读:255      评论:0      收藏:0      [点我收藏+]

import Foundation

 

//打印函数

print("Hello, World!")

 

//不用加分号, 字符串就是"", 不用加@

print("41班, 先有创神后有天")

 

//类型推断: swift会根据初始值类型, 推断常量, 变量的数据类型

//常量和变量

 

//常量

//常量的定义前面都要加 let

let a = 10

 

//变量

//变量的定义前面都要加 var

var b = 20

b = 30

 

//类型声明

//类型安全: 实际类型 和 声明类型必须一致.

var c : Int = 30

 

//swift 命名比较随意

//不要以阿拉伯数字靠头

var 闯神 = 100.0

print(闯神)

 

let ?? = 10

print(??)

let 呵呵 = "??"

print(呵呵)

 

//字符串

var str: NSString = "不要连我的投影"

print(str.stringByAppendingString("123"))

 

//数组

var array = ["123"]

print(array)

print(array[0])

//往可变数组内添加元素

array.append("1")

//删除数组中的元素

 array.removeAtIndex(0)

 print(array,"\n",str)

 //修改数组内元素

 array[0] = "swift 保平安";

 print(array)

 

 //字典

 var dictionary = ["name":"龙神", "age":18]

 //修改元素

 dictionary.updateValue("81", forKey: "age")

 print(dictionary)

 //增加元素

 //updateValue方法: 如果key存在就进行更新value, 如果key不存在, 就添加元素

 dictionary.updateValue(168, forKey: "height")

 print(dictionary)

//删除元素

 dictionary.removeValueForKey("height");

 print(dictionary)

 //获取value

 //可选类型: 如果有值, 就是值本身, 如果没有值的话, 就是nil

 let value = dictionary["nam"]

 //如果确定有值, 可以进行强制解析,强制解析的方法为 !.

// print(value!)

 //如果不确定有值, 就要使用隐式解析, 解析方式如下:

 if let v = value {

    print(v)

 } else {

    print("没有取到值")

 }

 

//自定义一个可选类型的变量

 var 可选类型的变量 : Int?

 可选类型的变量 = 123

 print(可选类型的变量)

 

 //+ - * / % 三目运算

 let aa = 10

 let bb = 20

 let cc = aa - bb

 print(cc)

 let dd = aa * bb

 print(dd)

 print(aa/bb)

 //swift可以对浮点型取余

 //C语言是不可以的

 print(10 % 3.5)

 //+除了运算, 可以实现字符串拼接

 let 班 = "41 - "

 let name = "闯神"

 print(班 + name)

 

 //三目运算

 let sum = 100

 sum >= 10 ? print("sum比较大"):print("10比较大")

 

 //分支结构

 //if...else

 if(sum > 10){

    print("sum > 10")

 } else {

    print("sum <= 10")

 }

 

 //for循环

 for var i = 0; i < 10; i++ {

    //字符串拼接

    print("i = \(i)")

 }

 

 //区间[0, 20]

 //闭区间

 for j in 0...8 {

    print("j = \(j)")

 }

 

 //区间[8, 20)

 for k in 8..<20 {

    print("k = \(k)")

 }

 

//while

 var num = 10

 while num > 0 {

    print("num = \(num)")

    num--

 }

 

 //repeat...while = do...while

 //不管条件是否满足, 都要先走一次

 var n = 150

 repeat {

    print("闯神身高 = \(n) cm")

    n++

 } while(n < 170)

 

 //switch...case

 //每个条件语句结束部分不需要添加break, 会自动中止匹配

 let hobby = "扫雷"

 switch hobby {

    case "LOL":

    print("龙神爱玩LOL")

    case "World Of Warcraft":

    print("龙神爱玩魔兽世界")

 default :

    print("龙神爱玩其他游戏")

 }

 

 //定义一个新的常量/变量, 在 case 内把匹配数据接收, 恒成立, 所以下面代码不会执行

 let interest = "烫头"

 switch interest {

 case let x:

    print("闯神爱\(x)")

    case "唱歌":

    print("闯神爱唱歌")

 default:

    print("闯神爱睡觉")

 }

 

 //switch条件匹配

 //在where后面添加条件

 //如果满足, 才能走这个语句

 let x = 160

 switch x {

 case let y where y > 150:

    print("闯神身高大于150, 实际身高\(y)cm")

 default:

    print("闯神不足150cm!")

 }

 

 //穿过

 let xx = "女朋友"

 switch xx{

    case "女朋友":

    print("蒋飞有\(xx)")

    fallthrough

    case "宗主":

    print("蒋飞有宗主")

    fallthrough

 default:

    print("蒋飞有手")

 }

 

 //元祖

 let tuples = ("404", "网站无法打开")

 print(tuples.1)

 let personTuples = (万少:4121980, 大妈:41272609, 李阳:4101950)

 print(personTuples.大妈)

 

 //函数

 //定义一个函数

 //无参无返回

 func helloworld(){

    print("hello world")

 }

 helloworld()

 //有参无返回

 func helloKitty(name:String){

    print("广恩结婚对象的名字是: \(name)")

 }

 helloKitty("我不知道")

 

 //无参有返回

 func helloXuehua()->String {

    return "你买单, 我就来"

 }

 

 let xuehua = helloXuehua()

 print("雪华说:"+xuehua)

 

 //有参有返回

 func lotteryLanou(name:String)->String{

    if(name == "我"){

        return "U 盘"

    }else if(name == "范玉珍"){

        return "iWatch"

    }else{

        return "iPad"

    }

 }

 print(lotteryLanou("其他"))

 

//外部参数(脾气)

 func jinhua(脾气 piqi:String){

    print("金华脾气\(piqi)")

 }

jinhua(脾气:"好!")

 

 func sum(a:Int, b:Int)->Int{

    return a+b

 }

 print(sum(10,b: 20))

 

 //参数默认值

 func multiply(a:Int, b:Int = 10){

    print("积为\(a*b)")

 }

 multiply(200)

 //布尔值在 swift内只有两个值

 //真为 true

 //假为 false

 func autobiography(name:String, age:Int, gender:Bool){

    let 性别 = (gender == true ? "男":"女")

    print("我叫\(name),\(性别),\(age)岁")

 }

 autobiography("李松",age:18,gender:true)

 //函数类型

 // (Int)->Int

 func getName(a:Int)->Int{

    return 10;

 }

 

 func getAge(a:Int)->Int{

    return 100;

 }

 

 //初始化一个类型为 (Int)->Int 类型的函数变量

 //写法1

 //var fu:(Int)->Int = getAge

 //print(fu(123))

 

 //类型别名

 //函数类型包括两部分, (参数类型,....)->返回值类型, 也就是说具有相同参数和返回值的函数是同一个类型的

 //写法2

 typealias 整型 = Int

 typealias 函数类型1 = (整型)->整型

 var fu:函数类型1 = getAge

 print(fu(123))

 

 //函数作为函数的参数

 func firstDem(a:Int){

    

 }

 print(firstDem(10))

 

 func firstFunc(nielei:函数类型1){

    

    print("firstFunc = \(nielei(123))")

 }

firstFunc(getName)

 

 

 //函数作为函数的参数

 func second(a : Int)->Int{

    return a * 100

 }

 

 func second2(a:Int)->Int{

    return a * 3

 }

 

 func secondFun(f1 : (Int)->Int)->Int {

    return f1(20)

 }

 print(secondFun(second2))

 

 //函数作为函数的返回值

 func third1(){

    print("闯神不帅")

 }

 func third2(){

    print("我真帅")

 }

 

 //重定义()->()类型

 typealias functionType2 = ()->()

 func thirdFunc(f1:functionType2, f2:functionType2, b:Bool)->functionType2{

    return b == true ? f1 : f2

 }

 //resultFunction 是个函数

 let resultFunction = thirdFunc(third1, f2: third2, b: false)

 //调用函数

 resultFunction()

 

 //函数嵌套定义

 typealias functionType3 = (Int)->()

 func bigFunc(b:Bool)->(Int)->(){

    func smallFunc1(a:Int)->(){

        print("大妈今年\(a)岁")

    }

    func smallFunc2(a:Int)->(){

        print("大妈明年\(a + 1)岁")

    }

    return b == true ? smallFunc1 : smallFunc2

 }

 let resultFunc2 = bigFunc(true)

 resultFunc2(17)

 

最基础的 swift 语言

原文:http://www.cnblogs.com/wsn1993/p/5058147.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!