Swift 学习 --- 基础<一>

// Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"
print("A"); print("A") // 如果同一行有有段代码用 ‘;‘隔开
// 默认自带换行符
println("Alice"); println("Peter"); println("Tommy")

//------------------------------基本数据类型-------------------------------------

// 类型推断
let a = 10
var b = 20
print(a+b)

// 关于整型,在32位系统自动推断Int32, 64位-->Int64
let maxNumberOfStudent = 50
var currentStudent: Int // 如果不给初值,必须要指定类型  在使用前必须给定初值(安全性的体现)
currentStudent = 50
currentStudent++
currentStudent

var score = 90.2 // 浮点型默认Double类型
var score2: Float = 90.2 // 精度低 在底层转换的时候,有偏差
var scoreSum = score + Double(score2) // 拒绝隐式转换,必须转成相同类型 转化规则 : Type (value)

//------------------------------字符串类型-------------------------------------
let name = "Alice"
let char: Character = "m" // 默认生成字符串类型, 如果需要字符型,手动指定

let School = "school"
let Class = "classA"
let ourClass = loSchool + loClass // 拼接字符串, +重载运算符(来源于c++)
let class_A = "A"

let 范冰冰 = "班长" // Swift 支持Unicode编码,所以可以支持中文
let ?? = "love"

//------------------------------数组类型-------------------------------------

// Swift 数组只能存储同一类型的数据 (实际上是可以存放不同类型的数据)
var array = [1,2,3]
let array2: [Int] = [1,2,3] // 指定类型 [value类型]
let array3: Array<Int> = [1,2,3]
let array4 = ["a","b","c"]

// 增加
array.insert(1, atIndex: 0)
array + array2
array.append(5)

// 删除
array.removeLast()

// 查询
array[0] = 10
print(array)

let arr = [11,22,33,44,55,66]
array += arr

// 区域运算符
// ...  1....2  从1到2的闭区间
// ..<  1..< 左闭右开
arr[1..<2]
arr[0...2]

//--------------------------字典 (通常称为键值对)-------------------------------
var dictionary = ["key": 333,"key1": 444]
var dictionary2: Dictionary<String, Int> = ["key": 000,"key2": 111] // 指定类型

// 查询
dictionary2["key"]
// 如果检测到字典中 没有这个键,且我们对起做了赋值操作, 系统就会做插入操作
dictionary["key3"] = 666
dictionary

var index = dictionary.indexForKey("key")
dictionary.removeAtIndex(index!)
// var any: String = nil  // 这样的赋值方式是不可行的
// 所以swift提供了<可选类型>  optional  :?:

var stringO : String? = nil // 在类型后面加 ‘?‘ 证明是可选类型,此时可以为nil
// 底层实现 : 会给该变量进行打包 如果有值的时候 some 修饰  无值时用null修饰
// 上面 (index!) 的‘!‘号就是对他进行解包

stringO = "string"
stringO! += "ff" // !解包 使用的时候需要解包操作
stringO

stringO?.toInt() // .toInt 方法将stringO转化为int型
var num: Int? // 当我们有意识  返回值可能为空,就需要将接收者,定义为可选类型
num = stringO?.toInt()

//-------------------------- 元 祖 -------------------------------
// 用于储存不同类型的数据类型 使用圆括号
let status = (402,"Not Found")
status.0
status.1

let (c,d) = status
c
d

var status2: (num: Int, info: String) = status
var status3: (Int,String) = status // 限定类型
status2.num
status2.info

//-------------------------- 分 支 -------------------------------
// if语句中的条件必须是bool值或者是bool表达式

var isOrNo = true // swift 中的bool只能是true false
if isOrNo {

    println("true")

}

var count: Int? = nil
count = 20

if let num = count {

    println("num = \(num)") // \() 将变量和变量名隔开

}

//-------------------------- 循 环  -------------------------------

var num1 = 0
while num1 < 10 {

    println("num1 = \(num1)")
    num1++
}

var num2 = 10
var num3 = 20

do {
    num2 + num3
    num2++

} while num2 < 20

var num4 = 0
for num4 = 0 ; num4 < 10 ; num4++
{
    println("\(num4),num2")
}

var names = ["fangcheng","chenxuekai","yexinru"]
for nameStr in names {

   println(nameStr)

}

// 默认前面是位置 后面是数组内的value
// 枚举数组的位置和值,需要加关键字 --- enumerate
for (index,nameStr) in enumerate(names) {

    println(nameStr)
    println(index)

}

// 枚举字典 不用加关键字
var nameDic = [11: "AAA", 22: "BBB", 33: "CCC"]

for (key,value) in nameDic {
    println("\(key),\(value)")
}

// _占位符
for value in nameDic {
    println(value)
}

// 当我不想要下标 加个站位符
for (_, value) in nameDic {
    println(value)
}

for index_1 in names[0...1] {
    println(index_1)
}

//--------------------------  switch  -------------------------------
var point = (3, 0)
switch point {
    case (0, 0):
        println("原点")
    case (_, 0):
        println("x 轴"); fallthrough // 自带break 但我们不需要break的时候,就加这个 fallthrough
    case (0, _):
        println("y 轴")
    case (_, _):
        println("象限内")

}

let point2 = (3, 0)
switch point2 {
case (0, 0):
    println("原点")
case (let x, 0) where x == 4:
    println(x)
case (0, let y):
    println(y)      // 当下面有声明的变量时,不能fallthrough
case (let x, let y):
    println("\(x),\(y)")
    fallthrough
default:
    println("其他")
}

var number_switch = 20
switch number_switch {
case 1...10:
    println("1...10")
case 11...21:
    println("11...20")
default:
    println(">21")
}

for number_switch_enum in 1...100 {

    println(number_switch_enum)
    if number_switch_enum == 20 {
        break
    }
}

var vowel = "aaeifdsoufdsa"
//  如果想要在打印元音之后, 就跳出循环
//  在循环前面加一个标记, break + 标记 用于打断循环
tempName: for vowel_str in vowel {
    switch vowel_str {
        case "a", "e", "i", "o", "u":
        println("元音字母")
        break tempName
    default:
        println("辅音字母")
    }

}

//---------------------------------------- 冒 泡 ------------------------------------------
var array_sort = [3,4,1,7,5,0,9,3,8]

for var i = 0 ; i < array_sort.count ; i++
{
    for var j = 0 ; j < array_sort.count - i - 1; j++
    {
        if array_sort[j] < array_sort[j+1]
        {
            var temp = array_sort[j]
            array_sort[j] = array_sort[j+1]
            array_sort[j+1] = temp
        }
    }
    println(array_sort)
}

var array_sort1 = [1,3,6,7,0,10]

for var i = 0; i < array_sort1.count; i++ {

    for var j = 0; j < array_sort1.count - i - 1; j++ {

        if array_sort1[j] < array_sort1[j+1] {

            var temp = array_sort1[j]
            array_sort1[j] = array_sort1[j+1]
            array_sort1[j+1] = temp
        }

    }
    println(array_sort1)
}

array_sort1
时间: 2024-08-04 16:34:51

Swift 学习 --- 基础<一>的相关文章

Swift学习:基础部分(The Basics)

Swift 是一门开发 iOS macOS watchOS  和 tvOS 应用的新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现Swift 的很多内容都是你熟悉的. Swift 包含了 C 和 Objective-C 上所有基础数据类型, Int 表示整型值: Double 和 Float 表示浮点型值: Bool 是布尔型值: String 是文本型数据. Swift 还提供了三个基本的集合类型, Array , Set 和 Dictionary ,详见集合类

Swift 学习 --- 基础&lt;二&gt;

// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" //------------------------- 类和结构体的相同与不同 ------------------------- //************************* // 结构体和类的相同点, 在swift中,struct被强化 // 1. 都可以定义属性 // 2. 定义方法

Swift学习——Language Guide 基础

The Basics Swift is a new programming language for iOS and OS X app development. Nonetheless, many parts of Swift will be familiar from your experience of developing in C and Objective-C. Swift是用于开发IOS和Mac OS系统应用的新的编程语言,如果你曾经使用过C或者OC开发IOS程序,那你会发现他们和S

Swift学习笔记(一):基础

一.常量 & 变量 //常量 let constantsTeam = 1 //变量 var variablesTeam = 2 尽可能使用常量,这样更清晰并且内存更不容易肾亏. 二.显示/隐式指定类型 //隐式 let inferredTeam = 3 //显式 let explicitTeam:Int = 4 三.字符串输出 //通过\(变量或常量名)来引用组合字符串 println("\(inferredTeam) is bigger than \(variablesTeam)!&q

Swift学习——Swift基础详解(四)

A:小儿编程很不好! B:多半是不爱学,从看英文版开始,让你爱上编程! Type Aliases    类型重定义(typedef) Swift中重定义类型的关键字是typealias,至于怎么用,应该不必多说了,看例子: typealias AudioSample = UInt16 //定义了一个类型名称AudioSample,代表UInt16类型 var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound is now 0 Boo

Swift学习——Swift基础详解(一)

注:由于基础部分在Swift Tour 中已经大体的说明了,所以在详解中不会达到100%的原文释义 Constants and Variables  常量和变量 常量和变量都需要声明名称和类型(作为程序员,这些基础也就不说了),常量一次赋值不能改变,变量的值可以改变 Declaring Constants and Variables   声明常量和变量 常量和变量在使用之前必须要声明,使用let关键字定义常量,var关键字定义变量 下面的例子可以用来定义用户登录的时候最大的尝试次数: let m

swift学习_xcode基础学习

android L已经在开发大会上公布了, 技术得跟上时代的潮流, 一心想在移动互联网中发展,只好努力学习 html+ js  ,  oc ! 服务器运维我就不写了,就算是自己的生活记录.android 说真心话, 一直想写,结果发现自己很喜欢写得连续点,就像仙剑一样, 应该是能让人回味的那种,文笔不好 , 就先这些基础开始练习吧. 发呆中..... 上一个教程中 xcode6  安装后,打开xcode开始界面,我突然发现 get start playground , 一直在犹豫他是神马....

Swift学习——Swift基础详解(二)

上节说了没有营养的变量和常量,这玩意,都差不多,自己稍微看下就好了 Integers    整型 整数就是整数了,没有小数,整数有符号(+,-,0)或者无符号(0,+) Swift提供了8,16,32,64位的有符号和无符号的整数,命名使用C的方式,比如,8位无符号的整型UInt8,32位有符号的整型就是Int32 Integer Bounds    整型范围 可以使用min 和 max获取整数类型的最大值和最小值 let minValue = UInt8.min // minValue is

Swift学习 --- 2.1基础部分

1.swift 可以省去; 2.println与print的区别就是一个可以换行一个不可以 3.swift省去了.h与.m 直接一个swift文件 4.元组可以返回多个值,元组(tuples)把多个值组合成一个复合值.元组内的值可以使任意类型,并不要求是相同类型,你可以将一个元组的内容分解(decompose)成单独的常量和变量,然后你就可以正常使用它们了: let (statusCode, statusMessage) = http404Error println("The status co