Hướng Dẫn Lập Trình Swift Cho Người Mới Bắt đầu - Openplanning
Có thể bạn quan tâm
- Tất cả tài liệu
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Spring Boot
- Spring Cloud
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- Ubuntu
- Solaris
- Mac OS
- VPS
- Git
- SAP
- Amazon AWS
- Khác
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
- Giới thiệu
- Tạo Project Swift đầu tiên của bạn
- Giải thích các đặc điểm cơ bản của Swift
- Thêm mới một file nguồn
- Các kiểu dữ liệu trong Swift
- Biến và khai báo
- Câu lệnh rẽ nhánh
- Vòng lặp trong Swift
- Mảng trong Swift
1. Giới thiệu
Đây là tài liệu hướng dẫn Swift cho người mới bắt đầu. Để lập trình Swift bạn phải cài đặt công cụ lập trình XCode. Bạn có thể xem hướng dẫn download và cài đặt tại:
- Cài đặt XCode
2. Tạo Project Swift đầu tiên của bạn
Đây là hình ảnh đầu tiên khi bạn mở XCode
Tạo mới Project:
Chúng ta tạo một Project đơn giản (Ứng dụng Console, là ứng dụng không có giao diện).
Đặt tên cho project là SwiftBasics:
Tạo một thư mục tại Desktop để chứa các Project của bạn.
Đặt tên thư mục sẽ chứa các project của bạn là SwiftTutorials:
Project của bạn đã được tạo ra.
main.swift là một file nguồn đã được tạo ra khi bạn tạo project, bạn cần chạy file nguồn này, nó sẽ ghi ra màn hình Console dòng chữ "Hello, world".
Nhấn "Enable" để cho phép chương trình chạy ở chế độ dành cho người lập trình.
Chương trình chạy và in ra dòng chữ "Hello, world".
3. Giải thích các đặc điểm cơ bản của Swift
Bạn cần có một cái nhìn cơ bản về Swift, điều này rất quan trọng.Top level là gì?Một dòng lệnh hoặc biểu thức không nằm trong một hàm, khối lệnh hoặc một class nghĩa là nó nằm ở Top-Level.
Top-Level là nơi khai báo sử dụng các thư viện, khai báo biến, hằng số, hàm, lớp. Theo mặc định các biến và hằng số được khai báo ở mức Top-Level của file nguồn này có thể được sử dụng trong các file nguồn khác trong cùng một module (project).Bạn không thể viết một biểu thức ở Top-Level, chẳng hạn một biểu thức để gọi hàm. Vì vậy gọi hàm print("Hello") để in ra dòng chữ "Hello" ở Top-Level là không hợp lệ, trừ khi bạn làm việc đó ở file nguồn có tên main.swift (Đây là trường hợp ngoại lệ).Điểm bắt đầu của chương trình Swift:Trong một chương trình Swift file main.swift là một file đặc biệt, vì nó chính là điểm bắt đầu để chạy chương trình. Bạn có thể gọi hàm hoặc viết biểu thức ở Top-Level trên file nguồn main.swift, đó là một ngoại lệ dành riêng cho file này.Tôi tạo ra một file nguồn mới có tên newfile.swift, bạn sẽ thấy một thông báo lỗi khi tôi cố tình viết một biểu thức ở Top-Level.
Các biểu thức cần được đặt trong một hàm hoặc khối lệnh.4. Thêm mới một file nguồn
Bây giờ bạn cần tạo một file nguồn đầu tiên của bạn, và chạy được nó.Trên XCode, nhấn phải chuột vào thư mục chứa file nguồn main.swift, chọn "New file".
Nhập vào tên file MyFirstSwift:
MyFirstSwift.swift đã được tạo ra:
Tôi sửa nội dung của file nguồn vừa được tạo ra, và thêm vào một hàm sayHello(), chú ý chi tiết về hàm sẽ được đề cập ở một phần khác.MyFirstSwift.swiftimport Foundation // Nội dung lời chào. var message = "Hello every body" // Hàm sayHello() func sayHello() { // Gọi hàm print để in thông điệp ra màn hình Console. // Chú ý: Bạn không thể gọi hàm này tại Top-Level. print(message) }Trong Swift điểm bắt đầu để chạy ứng dụng chính là main.swift, vì vậy để test hàm sayHello() bạn cần phải gọi trong main.swift. Sửa code của main.swift:main.swiftimport Foundation print("Hello, World!") // Gọi hàm sayHello() // (Đã được viết trong MyFirstSwift.swift sayHello()Chạy project.
5. Các kiểu dữ liệu trong Swift
| Kiểu dữ liệu | Độ rộng | Phạm vi giá trị |
| Int8 | 1byte | -127 tới 127 |
| UInt8 | 1byte | 0 tới 255 |
| Int32 | 4bytes | -2147483648 tới 2147483647 |
| UInt32 | 4bytes | 0 tới 4294967295 |
| Int64 | 8bytes | -9223372036854775808 tới 9223372036854775807 |
| UInt64 | 8bytes | 0 tới 18446744073709551615 |
| Float | 4bytes | 1.2E-38 tới 3.4E+38 (~6 digits) |
| Double | 8bytes | 2.3E-308 tới 1.7E+308 (~15 digits) |
6. Biến và khai báo
Một biến xác định bởi một cái tên cho một khu vực lưu trữ dữ liệu mà chương trình của bạn có thể thao tác. Mỗi biến trong Swift có một kiểu dữ liệu cụ thể, trong đó xác định kích thước và phạm vi giá trị có thể được lưu trữ trong bộ nhớ, và tập hợp các toán tử có thể áp dụng cho biến.Biến có thể thay đổi giá trị trong quá trình tồn tại của nó trong chương trình. Các biến có giá trị cố định được gọi là các hằng số. Sử dụng từ khóa let để khai báo một biến là hằng số.Trong swift, bạn có thể khai báo một biến ở Top-Level hoặc là một biến địa phương nằm trong một class hoặc hàm. Với các biến được khai báo ở Top-Level nó có thể được sử dụng tại các file nguồn khác trong cùng một module (Project).Khai báo một biến:// <Variable name>: Tên biến // <Data Type>: Kiểu dữ liệu var <Variable name> : <Data Type> ; // Khai báo một biến, và gán giá trị cho nó. // <Variable name>: Tên biến // <Data Type>: Kiểu dữ liệu // <value>: Giá trị var <Variable name> : <Data Type> = <value>; // Khai báo một hằng số // <Constant name>: Tên hằng số. // <Data Type>: Kiểu dữ liệu // <value>: Giá trị let <Constant name> : <Data Type> = <value>; // Ví dụ: // Khai báo một biến // Tên của biến: year // Kiểu dữ liệu: Int // Giá trị: 2016 var year: Int = 2016; // Với một số kiểu nguyên thủy (primitive type) (Int, Double, Bool) và String, // bạn có thể bỏ qua trong khai báo. // Swift có thể hiểu ý định của bạn. .. // Được suy luận là String var languageName = "Swift" var version = 1.0 // Double var introduced = 2014 // Int var isAwesome = true // BoolVariableExample.swiftimport Foundation // Sử dụng từ khoá 'let' để khai báo một hằng số (constant). // Tên hằng số là COPYRIGHT, kiểu dữ liệu là String, // và giá trị là "o7planning". // (Đây là một hằng số được khai báo ở Top-Level // Nó có thể được sử dụng trong các file nguồn khác trong project). let COPYRIGH: String = "o7planning" // Sử dụng từ khoá 'var' để khai báo một biến (variable). // Tên của biến là: year // Kiểu dữ liệu: Int // Giá trị: 2016 // (Đây là một biến được khai báo ở Top-Level // Nó có thể được sử dụng trong các file nguồn khác trong project). var year: Int = 2016 func variableExample() { // Khai báo một hằng số kiểu số nguyên (integer) // Bạn không thể gán một giá trị mới cho hằng số. let MAX_SCORE = 100; // Khai báo một số nguyên (integer). var score = 90; // Khai báo một chuỗi (string). var studentName = "Tom" // In chuỗi ra màn hình Console. print("Hi \(studentName)") print("Your score: \(score)/\(MAX_SCORE)") print("Assign new value for studentName") // Gán giá trị mới cho biến studentName. studentName = "Jerry" print("Hi \(studentName)") }Sửa code của file nguồn main.swift:main.swiftimport Foundation // Gọi hàm variableExample(), // được định nghĩa trong file VariableExample.swift variableExample()Kết quả chạy ví dụ:Hi Tom Your score: 90/100 Assign new value for studentName Hi Jerry7. Câu lệnh rẽ nhánh
Câu lệnh If-elseif là một câu lệnh kiểm tra một điều kiện gì đó trong Swift. Chẳng hạn: Nếu a > b thì làm gì đó ....Các toán tử so sánh thông dụng:| Toán tử | Ý nghĩa | Ví dụ |
| > | Lớn hơn | 5 > 4 là đúng (true) |
| < | Nhỏ hơn | 4 < 5 là đúng (true) |
| >= | Lớn hơn hoặc bằng | 4 >= 4 là đúng (true) |
| <= | Nhỏ hơn hoặc bằng | 3 <= 4 là đúng (true) |
| == | Bằng nhau | 1 == 1 là đúng (true) |
| != | Không bằng nhau | 1 != 2 là đúng (true) |
| && | Và | a > 4 && a < 10 |
| || | Hoặc | a == 1 || a == 4 |
Nếu bạn đã làm việc với các ngôn ngữ khác như Java, C# bạn có thể nhận thấy cú pháp sử dụng switch có sự khác biệt so với Swift. Trong Swift mỗi khi một trường hợp (case) đúng, khối lệnh của trường hợp (case) này sẽ được thực thi, và các trường hợp khác không được chạy. Với Java, C# khi một trường hợp đúng khối lệnh của trường hợp đó được chạy, và nếu không có lệnh break thì khối lệnh case (hoặc default) tiếp theo sẽ được thực thi. Swift đã tự động break sau khi nó thực thi xong một khối lệnh case.Swift thêm vào lệnh fallthrought (Lệnh này không có trong Java, C#), fallthrought nói với chương trình rằng tiếp tục thực thi khối lệnh case (hoặc khối lệnh default) kế tiếp.Hãy xem một ví dụ minh họa:
SwitchFallthroughExample.swiftimport Foundation func switchFallthroughExample() { var option = 15 switch (option) { case 0...10: print("Case 0...10") // fallthrough: Thực thi trường hợp tiếp theo. fallthrough case 11...20: print("Case 11...20") // fallthrough: Thực thi trường hợp tiếp theo. fallthrough case 21...30: print("Case 21...30") // fallthrough: Thực thi trường hợp tiếp theo. fallthrough case 31...40: print("Case 31...40") case 41...50: print("Case 41...50") default: print("Default case") } }Chạy ví dụ:Case 11...20 Case 21...30 Case 31...408. Vòng lặp trong Swift
Vòng lặp được sử dụng để chạy lặp lại một khối lệnh. Nó làm chương trình của bạn thực thi lặp đi lặp lại một khối lệnh nhiều lần, đây là một trong các nhiệm vụ cơ bản trong lập trình. Swift hỗ trợ 4 loại vòng lặp khác nhau:- FOR .. IN
- FOR
- WHILE
- REPEAT WHILE
LoopBreakExample.swiftimport Foundation func loopBreakExample() { print("Break example"); // Khai báo một biến và gán giá trị 2 cho nó. var x = 2; while (x < 15) { print("----------------------"); print("x = \(x)"); // Nếu x = 5 thì thoát khỏi vòng lặp. if (x == 5) { break; } // Tăng giá trị của x thêm 1. x = x + 1; print("After +1, x = \(x)"); } }Kết quả chạy ví dụ:Break example ---------------------- x = 2 After +1, x = 3 ---------------------- x = 3 After +1, x = 4 ---------------------- x = 4 After +1, x = 5 ---------------------- x = 5Lệnh continue trong vòng lặpcontinue là một lệnh, nó có thể nằm trong một vòng lặp, khi bắt gặp lệnh continue chương trình sẽ bỏ qua các dòng lệnh trong khối phía dưới của continue và bắt đầu một vòng lặp mới.
LoopContinueExample.swiftimport Foundation func loopContinueExample() { print("Continue example") // Khai báo một biến và gán giá trị 2 cho nó. var x = 2 while (x < 7) { print("----------------------") print("x = \(x)") // Toán tử % là phép chia lấy số dư. // Nếu x là số chẵn, thì bỏ qua các dòng lệnh phía dưới của 'continue' // và bắt đầu bước lặp tiếp theo (Nếu điều kiện vẫn đúng). if (x % 2 == 0) { // Tăng giá trị của x thêm 1 x = x + 1 continue } else { // Tăng giá trị của x thêm 1. x = x + 1 } print("After +1, x = \(x)") } }Kết quả chạy ví dụ:Continue example ---------------------- x = 2 ---------------------- x = 3 After +1, x = 4 ---------------------- x = 4 ---------------------- x = 5 After +1, x = 6 ---------------------- x = 69. Mảng trong Swift
Mảng một chiềuMảng của Swift về bản chất là một Struct, nó khác với một mảng trong các ngôn ngữ khác như Java, C#,...Mảng của Java, C# có số phần tử cố định và không thể thêm hoặc bớt số phần tử, trong khi đó mảng của Swift lại làm được điều này.Đây là hình minh họa về mảng một chiều có 5 phần tử, các phần tử được đánh chỉ số từ 0 tới 4.
Cú pháp khai báo mảng một chiều:// Cách 1: // Khai báo một mảng các số Int, và chỉ định các phần tử. var years: [Int] = [ 2001, 2003, 2005, 1980, 2003 ]; // Hoặc (Swift tự hiểu đây là một mảng các số Int). var years = [ 2001, 2003, 2005, 1980, 2003 ]; // Cách 2: // Khai báo một mảng các số Float. // 3 phần tử, và các phần tử đều có giá trị 0. var salaries:[Float] = [Float](count: 3,repeatedValue :0 ); // Hoặc: var salaries = [Float](count: 3,repeatedValue :0 ); // Cách 3: // Khai báo một mảng rỗng (Không có phần tử nào). var emptyArray:[Int] = [Int]()Ví dụ:ArrayExample1.swiftimport Foundation func arrayExample1() { // Cách 1: // Khai báo một mảng các số Int, chỉ định các phần tử. var years: [Int] = [ 2001, 2003, 2005, 1980, 2003 ]; print("--- years --- "); // count là một property của mảng, nó trả về số phần tử của mảng. print("Element count of array years = \(years.count)"); // Sử dụng vòng lặp for để in ra các phần tử của mảng. for (var i = 0; i < years.count; i = i + 1) { print("Element at \(i) = \(years[i])"); } print("--- salaries --- "); // Cách 2: // Khai báo một mảng các số Float. // 3 phần tử, và các phần tử đều có giá trị 0. var salaries:[Float] = [Float](count: 3,repeatedValue :0 ); // Gán các giá trị cho các phần tử. salaries[0] = 1000; salaries[1] = 1200; salaries[2] = 1100; // Sử dụng vòng lặp for để in ra các phần tử của mảng. for (var i = 0; i < salaries.count; i = i + 1) { print("Element at \(i) = \(salaries[i])"); } }Kết quả chạy ví dụ:--- years --- Element count of array years = 5 Element at 0 = 2001 Element at 1 = 2003 Element at 2 = 2005 Element at 3 = 1980 Element at 4 = 2003 --- salaries --- Element at 0 = 1000.0 Element at 1 = 1200.0 Element at 2 = 1100.0Mảng của Swift là một StructTrong Swift, mảng bản chất là một Struct (Cấu trúc) vì vậy nó có các thuộc tính và phương thức. Bao gồm các phương thức thêm các phần tử vào mảng hoặc loại bỏ các phần tử.// Khai báo một mảng các String, có 2 phần tử. var languages = ["Java","C#"] // Sử dụng phương thức append() để nối 1 phần tử vào cuối của mảng. languages.append("Swift") // Cũng có thể sử dụng toán tử += để nối một mảng vào cuối của mảng hiện tại. languages += ["C/C++", "Perl"];Ví dụ:ExpaddingArrayExample.swiftimport Foundation func expaddingArrayExample() { // Khai báo một mảng các String, với 2 phần tử. var languages = ["Java","C#"] // Sử dụng phương thức append() để nối thêm 1 phần tử vào cuối. languages.append("Swift") // Cũng có thể sử dụng toán tử += để nối một mảng khác vào cuối. languages += ["C/C++", "Perl"]; // Sử dụng vòng lặp for-in. for lang in languages { print("Language: " + lang) } }Chạy ví dụ:Language: Java Language: C# Language: Swift Language: C/C++ Language: PerlenumeratePhương thức enumerate() của mảng trả về đối tượng của EnumerateSequence struct. Mỗi phần tử của EnumerateSequence chứa thông tin chỉ số, và phần tử của mảng ban đầu.Xem thêm về struct tại:Ví dụ duyệt các phần tử của một mảng:EnumerateArrayExample.swiftimport Foundation import Cocoa func enumerateArrayExample() { // Khai báo một mảng các String với 3 phần tử. var languages :[String] = ["Java", "C#", "Swift"] for (index, element ) in languages.enumerate() { print("Element at \(index) = \(element)"); } }Chạy ví dụ:Element at 0 = Java Element at 1 = C# Element at 2 = Swift
- Hướng dẫn và ví dụ Swift Struct
Các hướng dẫn lập trình Swift
- Cài đặt Mac OS X 10.11 El Capitan trong VMWare
- Cài đặt XCode
- Hướng dẫn lập trình Swift cho người mới bắt đầu
- Hướng dẫn và ví dụ Swift Function
- Hướng dẫn và ví dụ Swift Closure
- Lớp và đối tượng trong Swift
- Hướng dẫn và ví dụ Swift Enum
- Hướng dẫn và ví dụ Swift Struct
- Lập trình theo nhóm sử dụng XCode và SVN

Các hướng dẫn lập trình Swift
- Cài đặt Mac OS X 10.11 El Capitan trong VMWare
- Cài đặt XCode
- Hướng dẫn lập trình Swift cho người mới bắt đầu
- Hướng dẫn và ví dụ Swift Function
- Hướng dẫn và ví dụ Swift Closure
- Lớp và đối tượng trong Swift
- Hướng dẫn và ví dụ Swift Enum
- Hướng dẫn và ví dụ Swift Struct
- Lập trình theo nhóm sử dụng XCode và SVN
Các bài viết mới nhất
- Dart Stream Single và Broadcast
- Xử lý lỗi trong Dart Stream
- Hướng dẫn và ví dụ Dart Stream
- So sánh đối tượng trong Dart với thư viện Equatable
- Flutter BloC cho người mới bắt đầu
- Xử lý lỗi 404 trong Flutter GetX
- Ví dụ đăng nhập và đăng xuất với Flutter Getx
- Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
- Hướng dẫn và ví dụ Flutter multi_dropdown
- Hướng dẫn và ví dụ Flutter flutter_form_builder
- Hướng dẫn và ví dụ Flutter GetX obs Obx
- Hướng dẫn và ví dụ Flutter GetX GetBuilder
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Flutter InkWell
- Hướng dẫn và ví dụ Flutter Radio
- Bài thực hành Flutter SharedPreferences
- Hướng dẫn và ví dụ Flutter Slider
- Hướng dẫn và ví dụ Flutter SkeletonLoader
- Chỉ định cổng cố định cho Flutter Web trên Android Studio
- Tạo Module trong Flutter
- Các hướng dẫn lập trình Swift
Từ khóa » Cài Swift
-
Lập Trình Swift Cơ Bản
-
Download Swift
-
Giới Thiệu Swift Chương Trình đầu Tiên Với Swift
-
Cách Sử Dụng Ngôn Ngữ Lập Trình Swift Trong Windows 10
-
Swift, Cài đặt Ngôn Ngữ Lập Trình Này Trong Ubuntu 20.04 | Ubunlog
-
Hướng Dẫn Lập Trình Swift Trên Ubuntu Linux - Viblo
-
Lập Trình Server Side Cơ Bản Với Swift - Viblo
-
Cách Cài đặt Ngôn Ngữ Lập Trình Swift Trên Debian 11 Bullseye
-
Cách Cài đặt Ngôn Ngữ Lập Trình Swift Trên CentOS 8
-
Cách Cài đặt Swift Và Vapor Trên Ubuntu 16.04
-
Xcode 14 Overview - Apple Developer
-
NẸP CÀI BA ĐỜ SỐC TRƯỚC SUZUKI SWIFT
-
Hướng Dẫn Sử Dụng Swift Performance Plugin - Wiki Mắt Bão
-
Không Thể Xử Lý Thông Báo Có Trường 77A Trong Gói Thông Báo Swift