Swift快速筆記

2021-09-29 20:33:39 字數 4872 閱讀 1016

基於cocoa 和cocoa touch框架

採用objective-c的命名引數以及動態物件模型。

支援**預覽

可以用於開發一套完整的作業系統。

匯入包 直接 import 不需要加 #

var 關鍵字,表示定義變數的關鍵字(型別自動追蹤) ;

let 關鍵字,常量單行注釋 // 多行注釋 /* */

print(「直接輸出 ,不需要」);

swift 是強語法,定義變數必須指定乙個值,不指定就報錯,不允許風險問題存在

class是保留字,但不是乙個有效的識別符號(不要使用就對了)

在宣告中使用關鍵字

class deinit enum extension func import init internal let

operator private protocol public static struct

subscript typealias var

在語句中使用關鍵字

break case continue default do else fallthrough for

if in return switch where while

在表示式和型別中使用關鍵字

as dynamictype false is nil self self super true _column_ _file_ _function_ _line_

在特定情況下使用的關鍵字

associativity convenience dynamic

didset

lazy

left

mutating

none

nonmutating

optional

overide

postfix

precedence

prefix

protocol

required

right

settype

unowned

weak

willset

空格僅包含空格

字面量

都是以 大寫開頭

int : int32 int64 整數

uint : 無符號整數 ,同樣有 uint32 uint64

float 表示32位浮點數

double 表示64位浮點數

bool 代表布林值

string 這是有序的字元集合 eg: 「hello world」

character 這是乙個單字元的字串, eg: 「a」

optional 這表示可以容納乙個值活沒有任何值的變數

32位平台上 int大小與int32 的大小相同

繫結值int8 1byte -127~127

uint8 1byte 0~255;

可以使用簡單活 unicode 字元來命名變數。

4. var 人名 = 「joker」

5. var ❀ = 「花」

var name :string = 「joker」

var high : datatype =169

列印變數

print(「my name is (name),and my age is (age)」)

optional

宣告 可選型別

> var name : string?   //問號前 沒有空格

> name ="joker"

> print(name) // ====>optional("joker")

> //可選型別使用資料值的時候,需要進行 解包

> print (name!) // 用 ! 強制解包 ====》 joker

> var name : string! //使用 ! 宣告變數為可選型別,可以自動解包

> print(name) ===> joker

可選繫結,輸出的時候 如果 為 null值 ,則直接不輸出該句。

let 宣告

let name = "joker"

let age: int=10

let weight : float =169.5

就是 c語言中的 常量

布林值》 true false nil

範圍值(a…b) a~b 包含a 和b

(a…if …else…

switch

if 條件表示式 else
switch color
for var i=0 ; i<10 ; i++
var number =10;

while number <20

repeat while number <20

for index in 1...10

//不需要 index值時 可以用 _ 代替

for _ in 1..10

元組

for (myindex,myvalue) in array3.enumerate()
集合就是 set型別的物件,表示的是一組無序的相同型別的資料集

建立集合
// 使用set的建構函式,構建乙個集合物件

var mytest1 =set(); //構建乙個空的集合物件。

mytest1 = [1,4,6,7,8]; //儲存時 無序的。

var mysets ; set = [12,3,5,7]

宣告乙個字典型別的變數

var dic2: [int:int] = [1:10,2:30,3:30]

var dic3= dictionary()

dic3=["key1":"value1"]

訪問字典

dic["key1"]

遍歷字典

for (key,value) in dic3

構造體型別

var studentmessage: (string,string) = ("joker","beijing")

studentmessage.0 ==>>joker

studenmessage.1 ====>> beijing

c 語言 enum weekday

swift :

enum weekday

使用

var birthday: weekday = weekday.mon

switch birthday

關聯值

enum student

var xiaoming =student.smallstudent("one","two","three")

switch xiaoming

原始值

enum color: int

color(rawvalue:10) ==>> yellow

使用 func 關鍵 開始定義函式

func func1()
func func2()-> string
func func3(num1:int,num2 int)-> int
//使用 元組 作為函式的返回值型別

func func4()->(int,int)

//呼叫

let result =func4

result.0 ===> 5

result.1 ===> 7

允許函式定義標籤

func fun6(first num1:int,num2:int,num3:int) -> int

// 一般預設第乙個形參變數名時不作為標籤出現的,如果你希望第乙個引數也有標籤,可以在形參變數名之前加乙個標籤

func6(first:3,num2:6,num3:9)

i/o 引數 ***inout *** 關鍵字

func muswap(num1:int,num2:int)

var a= 9

var b=100

myswap($a,num2:&b)

print("a= \(a) b= \(b)")

===> a =100 b= 9// 使用 函式型別, 第一型別 int float double

func mysum(num1: int,num2:int) ->int

var action : (int, int) -> int = mysum

// 可以使用 action 替代函式 mysum

action(1,2)

// 可以使用型別 作為函式的引數傳遞

func thirdnumsum(youraction:(int,int) -> int,num1:int, num2:int ,num3:int)->int

swift通知快速建立

相關鏈結 直接監控系統方法 var backgroundobserver nsobjectprotocol?object必須是nil,否則貌似沒反應 backgroundobserver noticecenter.addobserver forname nsnotification.name pri...

Swift實現快速排序

思想 從陣列中隨機抽取乙個數 一般是取末尾的乙個數 然後遍歷一遍陣列,把比這個數小的放在左邊,比這個數大的放在右邊 排好序後的陣列左右兩邊也做和這個操作,最終條件到剩下乙個數就終止,這時候就有序了。下面 丟進去的陣列是inout直接被改變的,而不是結果返回型的,直接用low和high操作這個陣列就行...

swift語言快速入門(一)

此文章只是記錄本人學習swift語言以來的自我感觸和開發經驗,可能有的知識點有遺漏 本人覺得不重要 務求看得人可以快速了解這門語言 1.常量和變數 常量 let a 5 變數 var a 5 經驗 let 宣告為常量,var 宣告為變數。2.資料型別 bool 判斷 true,false int 整...