ภาษา Swift เบื้องต้น
เรามาเริ่มศึกษากันตั้งแต่พื้นฐานโครงสร้างภาษากันเลยนะครับ (บางท่านไม่เคยเรียนเกี่ยวกับการเขียนโปรแกรมมาก่อนแนะนำให้ลองศึกษาหลักการเขียนโปรแกรม โฟวชาร์ต การคิดแบบตรรกะเบื้องต้นก่อนนะครับ) ในบทความ จะเริ่มต้นศึกษา Swift ต้องทำอย่างไรและต้องลงโปรแกรมอะไรบ้าง ได้เกริ่นเกี่ยวกับการติดตั้งโปรแกรมและเอกสารเพิ่มเติมที่จะศึกษาไปแล้ว ในบทความนี้เราจะมาเริ่มต้นศึกษาเรื่องการเขียนโปรแกรมภาษา Swift กันเลย
เริ่มต้นด้วยการสร้างโปรเจคเขียนภาษา SWIFT กัน
ในหน้า Welcome to Xcode (จะต้องเป็นเวอร์ชั่น 6.0 หรือสูงกว่าเท่านั้นนะครับ) กดเลือกที่เมนู Create a new Xcode project
เลือกที่ OS X > Application > Command Line Tool คือเราจะเริ่มหัดเขียนตั้งแต่พื้นฐานก่อนเลย จึงยังไม่ต้องรีบร้อนไปเลือกแบบ iOS Application นะครับ ค่อยเป็นค่อยไปดีกว่า
ตั้งชื่อโปรดัก (ชื่อโปรแกรม) ชื่อองค์กร และ identifier (เป็นชื่อที่มี . ขั้นระหว่างคำ ตรงนี้อาจจะใช้เป็น com.myapp ไปก่อนก็ได้ แต่หากเป็นแอพที่จะอัพเข้า App Store แล้ว ในส่วนนี้จะต้องมีส่วนของชื่อองค์กร ชื่อแบรนด์ของผลิตภัณฑ์ อยู่ด้วยนะ เพื่อจะทำให้เราระบุชื่อแอพได้แบบไม่ซ้ำกันนั้นเอง) เลือก Language เป็น Swift
เลือกที่เซฟโปรเจค แล้วกด Create เลย (จากรูปด้านบน จะเห็นว่าตรง Source Control ของผมจะมีมีปุ่มให้เลือกเนื่องจากว่า ผมได้เชื่อมพาทที่อยู่ไฟล์นี้เข้ากับ Github เอาไว้เก็บไฟล์บนอินเตอร์เน็ตนั้นเอง ศึกษาเรื่อง Source Control ที่ http://www.appcodev.com/category/dev-tools/github/)
เมื่อสร้างโปรเจคสำเร็จแล้ว จะนำท่านเข้าสู่การเขียนโปรแกรมด้วย Swift เลยนะครับ
โครงสร้างไฟล์ในโปรเจคของ SWIFT แบบ OS X > APPLICATION > COMMAND LINE TOOL
ข้อดีของการเริ่มต้นด้วยโปรเจคแบบ Command Line Tool นั้นก็คือ เราจะทราบพื้นฐานการสร้างโค้ดของโปรแกรม Swift เลยครับ จะไม่มีโค้ดอื่นมาแทรกกวนใจ ทำให้งง ทำให้เราศึกษาโค้ด Swift ได้เต็มที และรวดเร็ว งั้นเรามาเริ่มกันเลย
สังเกตสักนิด !!!
- ในโปรเจค จะมีไฟล์โค้ดมาให้เราแค่ 1 ไฟล์ คือ main.swift (main คือชื่อไฟล์ ส่วน .swift คือนามสกุลไฟล์)
- โค้ด Swift จะมีแค่ไฟล์เดียวคือ .swift ไม่เหมือน C หรือ Objective-C ต้องมี .h และ .m ทำให้สับสน ??? ตั้งแต่ตอนแรกเลย ใช่มั้ยครับ
- ในโค้ด main.swift จะมีโค้ดมาให้แค่ 2 บรรทัด นั้นคือ import Foundation และ printin(“Hello, World!”) เท่านั้น
โค้ดที่ให้มาคืออะไร
อันนี้จะง่ายต่อการเข้าใจมากๆ ครับ
นั้นก็คือ การนำไลบรารี่ Foundation มาใช้งาน เปรียบเทียบกับ Objective-C คือ #import
คือการปริ้นตัวหนังสือออกมาทาง Console เราสามารถใช้ได้ทั้ง println() ให้บรรทัดต่อไปขึ้นบรรทัดใหม่ และ print() ให้บรรทัดต่อไปต่อกันกับบรรทัดก่อนหน้าได้
จะสังเกตว่า โค้ดแต่ละบรรทัดของ Swift จะไม่มี ; (Semicolon) ปิดท้ายประโยคนะครับ เพื่อประหยัดตัวอักษร แต่เราจะเขียนใส่เข้าไปก็ได้ครับไม่เออเรอแต่อย่างใด หากยังติดกับโปรแกรมภาษา Objective-C อยู่ ^^
การประกาศตัวแปร
การประกาศตัวแปรในภาษา Swift นั้นประกาศได้ 2 แบบ คือ
- แบบระบุชนิดตัวแปรเข้าไปเลย (Type Safe)
- แบบไม่ระบุชนิดตัวแปร (Type Inference)
การประกาศแบบ Type Safe จะทำให้เรารู้ได้เลยว่าชนิดข้อมูลของตัวแปรนั้นๆ เป็นชนิดอะไร จะทำให้ปลอดภัยจากการใช้งานสลับชนิดตัวแปรด้วย แต่การประกาศแบบ Type Inference เป็นการประกาศที่พบบ่อยมาก เพราะมันทำให้เราเขียนโค้ดได้สั้นลง ส่วนการรู้ว่าเป็นชนิดอะไรนั้นเราต้องไปดูที่ค่าของตัวแปรเอาเองว่าเป็นชนิดอะไร
การตัวแปรในภาษา Swift มีอยู่ด้วยกัน 2 ประเภทหลัก คือ
- ตัวแปรที่ไม่สามารถเปลี่ยนแปลงค่าได้ หรือ Constant ตัวแปรนี้จะประกาศตัวแปรด้วยคีย์เวิร์ด let
- ตัวแปรที่สามารถเปลี่ยนแปลงค่าหลังจากประกาศตัวแปรแล้วได้ หรือ Variable ตัวแปรนี้จะประกาศตัวแปรด้วยคีย์เวิร์ด var
ทั้งสองคีย์เวิร์ดนี้มีการใช้แต่ต่างกัน หากไม่ต้องการให้ตัวแปรแก้ไขค่าได้ให้ใช้ let หากต้องการแก้ไขค่าตัวแปร อัพเดทค่าตัวแปร ในอนาคตให้ใช้ var
ตัวอย่าง
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//ตัวแปร
var tools = 4
//println('tools number \(tools)')
//constants and variables
//type safe
var langaugeName: String = 'Swift'
var version: Double = 1.0
let introduced: Int = 2012
let isAwesome: Bool = true //use true or false
//type inference
var langName = 'Swift inf' //inferred as String
var version2 = 2.0 //inferred as Double
let intro = 2014 //inferred as Int
let awesome = true //inferred as Bool
|
สังเกต
การประกาศตัวแปรแบบ Type Safe ชื่อชนืดของตัวแปรจะเริ่มต้นด้วยตัวพิมพ์ใหญ่ทั้งหมด เช่น String, Double, Int, Bool (จะไม่มีตัวพิมพ์เล็กให้สับสนอีกต่อไป เพราะว่าการประกาศตัวแปรพื้นฐานใน Swift ทุกตัวนั้นเป็น Object ของ Structure ทั้งหมด ดังนั้นชื่อชนิดตัวแปรจึงเป็นตัวพิมพ์ใหญ่)
ค่า Boolean จะใช้ชนิดตัวแปรว่า Bool และค่าที่ใช้จะใช้ true (จริง) และ false (เท็จ) เท่านั้น
การอัพเดทค่าตัวแปร ชนิด var และ let
จากรูปตัวแปร langName ที่ประกาศแบบ var นั้นจะสามารถอัพเดทค่าได้
ส่วนตัวแปร awesome ประกาศเป็นแบบ let หากมีการอัพเดทค่า จะทำให้คอมไพล์เลอร์ฟ้อง error : Cannot assign to ‘let’ value ‘awesome’ ทันที
การปริ้นและแสดงข้อความออกทาง CONSOLE
เราทราบมาคร่าวๆ แล้วนะครับว่า หากต้องการปริ้นข้อความหรือค่าตัวแปรต่างๆ ออกทาง Console ให้ใช้คำสั่ง println() หรือไม่ก็ print() เพื่อปริ้นค่าออกมาตามนี้
1
2
3
4
5
6
|
//แสดงข้อความธรรมดา
println('Hello Let Swift.')
//แสดงค่าตัวแปรแบบไม่มีข้อความ
println(langName)
//แสดงค่าตัวแปรกับข้อความ
println('Hi! \(langName)')
|
สังเกต หากเราต้องการปริ้นค่าตัวแปรพร้อมกับข้อความให้เราใส่ชื่อตัวแปรไว้ใน \(ชื่อตัวแปร) และใส่ทั้งหมดนี้ในสัญลักษณ์ฟันหนู เช่น “\(ชื่อตัวแปร) ข้อความธรรมดา” เท่านี้เอง
หรือต้องการแค่ปริ้นค่าตัวแปรออกมาเท่านั้น ก็ใช้แค่ชื่อตัวแปรได้เลย เช่น println(langName) โดยไม่ต้องใส่ใน \( )
การประกาศชื่อตัวแปรแบบ UNICODE
ภาษา Swift เราสามารถใช้ Unicode มาเป็นชื่อตัวแปรได้แล้วนะครับ Unicode นี้อาจจะเป็นภาษาไทยก็ได้ เป็นไงหละครับ สะดวกมั้ย
จากตัวอย่างเราสามารถประกาศชื่อตัวแปรเป็นภาษาไทย ได้จริงๆ นะ ต่อไปการตั้งชื่อโปรแกรมจะไม่ใช่เรื่องยากอีกต่อไปที่จะคิดว่าจะใช้ชื่ออะไรดี
แล้วอักษร Unicode เอามาจากไหน ?
สำหรับนักพัฒนาที่อยากจะใช้อักษร Unicode มาใช้เป็นชื่อตัวแปร ให้กดไปที่ ตรงเปลี่ยนภาษา > Show Character View เสร็จสามารถเลือกอักษรที่ต้องการแล้ว ดับเบิ้ลคลิ้กมาใช้ในโค้ดได้เลย
ในบทความนี้จะพูดถึงพื้นฐานการเริ่มต้นกับ Swift นะครับ บทต่อไปจะเป็นเรื่องของ String Character ครับ ติดตามกันได้นะครับ
เพื่อนๆ คนไหนสนใจที่จะเริ่มศึกษา Swift ไปด้วยกัน เข้ามาคุยกันได้ที่เพจ Let Swift (www.facebook.com/let.swift) เลยนะครับ หรือในเพจ Appcodev ก็ได้เช่นกัน
- See more at: http://www.appcodev.com/swift-%E0%B8%9E%E0%B8%B7%E0%B9%89%E0%B8%99%E0%B8%90%E0%B8%B2%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3/#sthash.aUe6JAz0.dpuf