1. Trang chủ
  2. » Công Nghệ Thông Tin

GIỚI THIỆU về CLASS, CLOSURE TRONG SWIFT3

7 227 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 118,38 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

GIỚI THIỆU VỀ CLASS, CLOSURE TRONG SWIFT3 Ở bài trước mình đã giới thiệu cho các bạn các kiểu dữ liệu trong Swift 3.. các bạn có thể tham khảo block tương tự closure trong Objective C tạ

Trang 1

GIỚI THIỆU VỀ CLASS, CLOSURE TRONG SWIFT3

Ở bài trước mình đã giới thiệu cho các bạn các kiểu dữ liệu trong Swift 3 Tiếp theo mình sẽ giới thiệu cho các bạn closure(block) và class trong swift3

Chắc các bạn từng học qua Objective C rất quen thuộc với block, class Tuy nhiên trong swift3 có nhiều cải tiến về ngôn ngữ,đem lại những lợi ích tuyệt vời !

bài hướng dẫn này chúng ta tiếp tục sử dụng playground để làm việc với swift 3 khởi tạo playground File->new->Playground : đặt tên:”class_closure”

1 closure tương tự block trong Objective C:

Closure là một biến đặc biệt, không chỉ lưu lại giá trị của một biến mà còn lưu lại một đoạn code Mục đích chủ yếu là khi ta gặp một đoạn code lặp lại nhiều lần ta

sử dụng closure sẽ giúp quản lý cũng như xử lý một cách nhanh gọn Ngoài ra ứng dụng chủ yếu của closure là khi ta tải dữ liệu từ server cần chạy đa luồng, closure giúp lưu lại data mà data thay đổi

các bạn có thể tham khảo block tương tự closure trong Objective C tại đây

– Cách khai báo closure tổng quát:

var Tênclosure kiểu tham số truyền vào,kiểu tham số truyền vào)->(kiểu trả về)

= {(tham số:Kiểu tham số truyền vào,tham số:Kiểu tham số truyền vào) in

//code

return giá trị trả về

}

– Cách truyền giá trị cho closure:

Tên closure(giá trị,1giá trị2)

ví dụ : tính tổng 2 số:

1 var closureTongQuat:(Double,Double)->(Double) = {(n:Double,m:Double) in

Trang 2

2 return m+n;

3 }

4 closureTongQuat(1,4)

kết quả trả về :5

– Kiểu khai báo ngầm định:

1 var closureTong = {(n:Double,m:Double) in

2 return m+n;

3 }

4

5 closureTong(1,2)

– Kiểu khai báo ngắn 1:

1 var closureHieu:(Double,Double)->(Double) = { (n,m)in

2 return n-m

3 }

4 closureHieu(9,4)

– Kiểu khai báo ngắn 2: Sau in chỉ thực hiện duy nhất một dòng code Nếu quá 1 dòng sẽ báo lỗi

1 var closureShort:(Double,Double)->(Double) = {

2 (n,m)in n-m

3 }

– Kiểu khai báo ngắn 3: $0,$1… là các biến đại diện cho n tham số chúng ta truyền vào

1 closureShort(7,2)

2 var short :(Double,Double)->(Double)

3 short={$0+$1}

4 short(0,1)

Trang 3

Như thế mình đã giới thiệu cho các bạn về closure … closure tương tự block nhé ứng dụng cụ thể mình đã giới thiệu rất nhiều trong Objective C

2 – Class trong swift 3:

Class là gì ? các bạn chắc đã nắm rất chắc rồi =D … Ở đây mình sẽ giới thiệu cụ thể cách khai báo, tạo đối tượng và cách gọi phương thức thuộc tính trong Swift 3

– Khai báo class trong Swift 3:

class tên class{

var tên thuộc tính:kiểu dữ liệu = giá trị mặc định

var tên thuộc tính:kiểu dữ liệu! // khai báo có thể nil

func Tên phương thức(tham số1,tham số2,tham số 3 ) -> kiểu trả về {// phương thức

// code …

}

var tên thuộc tính cần get set:Kiểu dữ liệu của thuộc tính{

set{

// code …

// ở đây có một đối tượng đặc biệt đó là newValue lưu giá trị truyền vào

}

get{

return Giá trị trả về

}

}

}

Trang 4

Ví dụ: Mình đã giải thích rất cụ thể trong code

1 //class

2 class people{

3 private var name:String = "binh"// khai báo property name giá trị mặc đinh là

"binh"

4 private var address:String = "thanh hoa"// khai báo property thuộc tính

address giá trị mặc định "thanh hoa"

5 private var age:Int = 22// khai báo thuộc tính giá trị mặc đinh 22

6 var Name:String{// ham set get giá trị cho thuộc tính name

7 set{

8 name=newValue// giá trị truyền vào được lưu trong newValue-> gửi đến thuộc tính name

9 }

10 get{

11 return name

12 }

13 }

14 var Address:String{// tương tự

15 set{

16 address=newValue

17 }

18 get{

19

20 return address

21 }

22 }

23 var Age:Int{// tương tự

24 set{

25 age=newValue

26 }

27 get{

28 return age

29 }

30 }

31 func Infor() -> Int {// hàm hiển thị thông tin

32 let inTT = "\(name) \(address) \(age)"// nối chuỗi

33 print(inTT)// hiển thị thông tin

34 return age

Trang 5

35 }

36

37 }

Tạo đối tượng trong class:

– Tổng quát:

var Tên đối tượng =class(có or có tham số)

Ví dụ đối với class bên trên:

1 var peo = people();

Truy xuất thuộc tính phương thức:

Object.tên phương thức or đối tượng

– ví dụ: kết quả mình comment bên cạnh luôn !

1 // truy xuất trực thuộc tính

2 peo.name// binh

3 peo.address// thanh hoa

4 peo.age//22

5 // set giá trị thuộc tính thông qua phương thức

6 peo.Name="đạt"// gán lại gia trị cho thuộc tính name

7 peo.Address="hải dương"// gán lại giá trị

8 peo.age=25// gán lại giá trị

9 // get giá trị thuộc tính thông qua phương thức

10 peo.Name// đạt

11 peo.Address// hải dương

12 peo.Age// 25

13 // gọi hàm infor của đối tượng

14 peo.Infor()// đạt hải dương 25

Hàm khởi tạo trong class:

Trang 6

ví dụ:

// hàm khởi tạo có tham số:

init(para1:kiểu dữ liệu,para2:kiểu dữ liệu,para3:kiểu dữ liệu){

self.thuộc tính1=para1

self.thuộc tính2=para2

self.thuộc tính3=para3

}

//hàm khởi tạo không tham số

init(){

}

ví dụ trong class trên:

1 init(name:String,address:String,age:Int){

2 self.name=name

3 self.address=address

4 self.age=age

5 }

6 init(){

7

8 }

Khi tạo đối tượng có thể truyền tham số vào thông qua hàm khởi tạo tương tự như constructor trong java

Ngoài ra trong swift 3 còn có hàm willSet, didSet:

willSet: hàm này thuộc tính vẫn còn giữ giá trị mặc định

didSet: hàm này thuộc tính đã được gán giá trị mới

1 class number {

Trang 7

2 var IntNumber1:Int = 0{

3 // trước sự thay đổi

4 willSet{

5 print(IntNumber1)// giữ giá trị mặc định của biến.kết quả 0

6 print(newValue)// có thể sử dụng giá trị newvalue kết quả mới 5

7 }

8 didSet{

9 print(IntNumber1)// không có giá trị newValue kết quả thuộc tính =5

10

11 }

12

13 }

14 }

Gọi hàm:

1 var so = number()

2 so.IntNumber1

3 so.IntNumber1=5

4 so.IntNumber1

Ngày đăng: 19/10/2016, 00:20

TỪ KHÓA LIÊN QUAN

w