Swift เป็นภาษาที่ Apple ได้พัฒนาขึ้นมาใหม่เพื่อรองรับการพัฒนาแอพบน iOS และ OS X ซึ่ง Swift ก็มีรูปแบบไม่แตกต่างจากการการเขียนด้วยภาษา C และ Objective-C แต่สิ่งที่เป็นข้อแตกต่างก็คือ Apple บอกว่า Swift เป็นภาษาทีเข้าใจง่าย รวมถึงมี Syntax ที่ไม่ซับซ้อน
Apple ให้คำจำกัดความ Swift ว่าเป็นภาษาที่มีความปลอดภัย รวมถึงมีการรวมฟังก์ชั่นใหม่ๆที่ทำให้การเขียน Code ง่ายขึ้น มีความยิดหยุ่นสูง และสนุกมากขึ้น (จริงๆอันหลังไม่น่าจะจริงนะครับ 55+) โดยใช้ Compiler, Debugger และ Framework เดิม รวมถึงมีการจัดการหน่วยหน่วยความจำให้ทำงานง่ายและมีประสิทธิภาพดีขึ้นโดยใช้ Automatic Reference Counting (ARC)
ที่นี้เรามาลองดูส่วนที่ข้อดีของ Swift กันนะครับว่ามีอะไรบ้าง
1. ไม่ต้องการมีการ Import Library เข้ามาเพื่อเรียกใช้งานฟังก์ชั่นต่างๆ ดังนั้น Swift จึงสามารถเขียนใช้ Code เพียงแค่บรรทัดเดียวก็ทำงานได้ เช่น การเขียน "Hello World"
2. การ Code ที่เขียนที่จุดเริ่มการทำงานจะถูกมองเป็น Global Scope ดังนั้นจึงไม่จำเป็นต้องเขียน Code อยู่ใน Main Function
3.ไม่ต้องใส่ ; (semi colon) เพื่อบอกว่าจบการเขียน Code แต่ละบรรทัด
4. การประกาศค่าคงที่ (Constant) ใช้คำว่า let และใช้คำว่า var ประกาศตัวแปร การประกาศค่าคงที่ ไม่จำเป็นต้องกำหนดค่า ในขณะที่ Compile แต่ต้องมีการกำหนดค่า นั้นหมายความว่าเราสามารถกำหนด Constant แค่ครั้งเดียวแต่สามารถใช้ได้หลายที่
var myVariable = 42
myVariable = 50
let myConstant = 42
ค่าคงที่หรือตัวแปรจะมีประเภทข้อมูลเหมือนกับค่าที่กำหนดลงไป เพราะ Complier จะดูจากค่าที่กำหนดลงไปเพื่อสร้างประเภทข้อมูลเอง แต่ในกรณีที่เราต้องการที่จะกำหนดประเภทตัวแปรเองก็สามารถทำได้โดยใส่ : (Collon)
ตัวอย่าง Implicit Type
let implicitInteger = 70
let implicitDouble = 70.0
ตัวอย่าง Explicit Type
let explicitDouble: Double = 70
5. การรวมค่าใน String จะถูกเขียนค่าในวงเล็บและเขียนทับขวา (\) ก่อนวงเล็บ ตัวอย่างเช่น
let firstname =
"Kunagorn"
let lastname =
"Sirikupt"
let appleSummary = "My first name is \(firstname ) ."
let fruitSummary = "My full name is \(firstname + lastname ) ."
6. การสร้าง Array และ Dictionaries จะใช้เครื่องหมาย brackets ([]) โดยสามารถเข้าถึง elements ต่างๆได้โดยการระบุ Index หรือ Key
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
ตัวอย่าง การประกาศ Array และ Dictionaries ว่าง ดังนี้
let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()
7. Control Flow - ใช้คำสั่ง if และ switch ในการควบคุมเงื่อนไขการทำงานต่างๆ ส่วนการวนลูปใช้ for-in, for, while, and do-while โดยไม่จำเป็นใส่วงเล็บเมื่อกำหนดเงื่อนไขต่างๆ แต่ต้องใส่วงเล็บปีกกาเพื่อกำหนดขอบเขตของการทำงาน
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
teamScore
8. Functions and Closures - สามารถสร้างฟังก์ชั่นเพื่อ return ค่าออกมาได้
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
greet("Bob", "Tuesday")
9. Objects and Classes - สามารถสร้าง Class เพื่อเรียกใช้งานได้ การประกาศ Properties สามารถทำได้เหมือนกับการประกาศค่าคงที่และตัวแปร
class Shape {
var numberOfSides = 0
func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides."
}
}
เมื่อสร้าง Class เสร็จแล้ว เราสามารถสร้าง Instance ให้กับ Class ได้ และสามารถใช้งาน Properties หรือ Method นั้นได้โดยใช้ . (dot)
var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()
10. Enumerations and Structures - สามารถใช้ enum เพื่อสร้าง enumeration เหมือนกับการสร้าง Class และสามารถสร้าง Method ที่เกี่ยวข้องได้
enum Rank: Int {
case Ace = 1
case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten
case Jack, Queen, King
func simpleDescription() -> String {
switch self {
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return String(self.toRaw())
}
}
}
let ace = Rank.Ace
let aceRawValue = ace.toRaw()
นี่ก็เป็นตัวอย่างเล็กๆน้อยสำหรับการเขียน Swift ซึ่งในความคิดผมคิดว่าคงมีประโยชน์มากทีเดียวกับผู้มือใหม่ที่ต้องการเขียน iOS เพราะ Code สามารถเข้าใจได้ง่าย ไม่ซับซ้อน รวมถึงมี Library ต่างไว้ให้งานมากมาย รวมถึงคนที่เขียน iOS อยู่แล้ว รวมถึงก็สามารถพัฒนาต่อได้ง่ายเพราะ Swift มีรูปแบบไม่แตกต่างจากการการเขียนด้วยภาษา C และ Objective-C
credit : https://developer.apple.com