iOS Tutorial – Begin with Swift (Day 1) – รู้จักกับ Swift

swift-128x128
2014 : Swift ถูกแนะนำให้รู้จักในงาน Apple World Developer Conference 2014
2015 : Swift ถูกเปิดให้เป็น Open Source

ทำไมจึงต้องใช้ Swift?

  • ทางผู้พัฒนาประกาศว่า Swift เองนั้นภาษาที่ใช้จะอ่านแล้วเข้าใจง่ายกว่า Objective-C, ทุกออบเจ็คใน Swift จะต้องประกาศชนิดของออบเจ็คเพราะฉะนั้น type safe, และมี environment ในการพัฒนาที่ดีกว่าสำหรับตัวนักพัฒนาเอง
  • ฟีเจอร์ทั้งหมดที่มีใน Objective-C จะใช้ได้ใน Swift ทั้งหมด
  • ทั้ง Objective-C และ Swift จะแปรเป็น machine code แบบเดียวกัน

จะเขียน Swift ต้องมีอุปกรณ์อะไรบ้าง?
จะพัฒนาโปรแกรมด้วยภาษา Swift อย่างแรกเลย ต้องมีเครื่องแมค จากนั้นก็ลง Xcode ซึ่งมีให้โหลดฟรีใน Appstore
แล้วถ้าไม่มีเครื่องแมคล่ะ อยากลองศึกษาภาษา Swift ทำอย่างไร? ก็ต้องอาศัย Virtual environment อย่างเช่น www.macincloud.com มีให้บริการไปเช่าเวลาเพื่อใช้ environment ของเค้า ราคา 20$/เดือน

รู้จักกับ Type, Constant, Variable
1. Data Type
– ทั้ง Variable, Constant จะต้องมี data type กำกับเพื่อช่วยให้ compiler สามารถรู้ว่า memoery เท่าไรที่จะต้องกำหนดให้ออบเจ็คนั้นๆ
– ช่วยให้รอบคอบในการเขียนโค้ด เพราะถ้ามีการกำหนดค่าผิดประเภท compiler จะได้ error ตั้งแต่ตอน compile
ตัวอย่างเช่น

var height:Int32 = 165    //ประกาศตัวแปรแบบกำหนด data type
var firstName = "Davide"  //ประกาศตัวแปรกแบบไม่กำหนด data type แต่ชนิดของตัวแปรจะถูกกำหนดตามค่าแรกที่ได้รับการ assign
height = firstName        //Error เพราะว่า height เป็น integer แต่ firstName ถูกกำหนดค่าเป็นชนิด String พอไป assign ชนิด String ให้กับ integer ตัว Compiler จะแจ้ง Error กลับมา

2. Variable และ Constant
Variable คือตัวแปรที่สามารถมีการปรับเปลี่ยนค่าได้ แต่ะ Constant คือตัวแปรที่ปรับเปลี่ยนค่าไม่ได้หลังจาก assign ค่าให้ตัวแปรนั้นแล้ว อาจมีคนคิดว่า ถ้าเช่นนั้น ก็ประกาศตัวแปรเป็น variable ทั้งหมดไม่ดีกว่าเหรอ ง่ายดีด้วย คำตอบคือ Constant นั้นนอกจากจะช่วยพัฒนาคุณภาพในการเขียนโค้ดแล้วยังสามารถป้องกันการเปลี่ยนแปลงค่าของตัวแปรในโค้ดที่อาจเกิดขึ้นโดยไม่ตั้งใจ ข้อมูลบางอย่างที่เป็นข้อมูลตายตัว เช่น จุดเดือดของน้ำ มีอุณหภูมิ 100 องศาเซลเซียสเสมอ และข้อมูลนี้จะไม่เปลี่ยนแปลงเลย หากมีการเปลี่ยนแปลงอาจทำให้การคำนวณนั้นผิดพลาดขึ้นได้
วิธีการประกาศ Variable

var waterDegree:Int32 = 50       // สามารถเปลี่ยนค่าในโค๊ดอีกได้

วิธีประกาศ Constant

let meltingPoint:Int32 = 100      // ไม่สามารถเปลี่ยนแปลงค่าได้อีก

 

รู้จักกับ Number

  1. Integers คือเลขจำนวนเต็มที่ไม่มีทศนิยม เช่น 42, -23 สามารถเป็นได้ทั้ง sign integer(+, 0, -) หรือ unsigned integer(+, 0) ใน swift สามารถใช้ของมูลประเภท integerในรูปแบบทั้ง 8, 16, 32, 64 bit การตั้งชื่อนั้นจะใช้แบบเดียวกับ C เช่น 8 bit unsigned integer จะใช้ UInt8
    ใน swift เราสามารถตรวจสอบค่า minimum, maximum ของ integer type ได้ดังนี้

    let minValue = UInt8.min      // minimum value ชอง integer type UInt8 = 0 
    let maxValue = UInt8.max      // maximum value ชอง integer type UInt8 = 255

    แต่ใน swift เองก็มีทางเลือกให้เลือกใช้ integer type : Int ซึ่งไม่ทำการระบุขนาดของข้อมูล หากเป็นกรณีที่ต้องระบุขนาดของข้อมูลเฉพาะเจาะจง เช่น เขียนโปรแกรมด้าน audio เราก็สามารถระบุขนาดข้อมูลตามข้างต้นได้ แต่ถ้าเป็นการเขียนโปรแกรมแบบทั่วไป swift เองจะแนะนำให้ใช้ integer type เป็น Int เสียมากกว่า เพื่อ consistency ในการเขียนโค้ด ขนาดของข้อมูลของ Int จะแปรผันดังนี้
    ในระบบปฏิบัตการที่เป็น 32-bit, Int จะมีขนาดเท่ากับ Int32
    ในระบบปฏิบัติการที่เป็น 64-bit, Int จะมีขนาดเท่ากับ Int64

  2. Floating-Point คือตัวเลขที่มีทศนิยม เช่น 3.14159, 0.1, -0.9 โดยสามารถเก็บค่าได้ในช่วงที่กว้างกว่า integer โดย swift จะมี floating-point ให้สองชนิดคือ Double และ Float
    Double จะเก็บข้อมูล floating-point 64 bit
    Float จะเก็บข้อมูล floating-point 32 bit

Operator ที่ใช้ได้กับ Number

= กำหนดค่า
+ บวก
ลบ
* คูณ
/ หาร
++ เพิ่มทีละหนึ่ง
ลดทีละหนึ่ง
+= เพิ่มค่าทีละเท่ากับจำนวนทางด้านขวา
เพิ่มค่าทีละเท่ากับจำนวนทางด้านขวา
% modular

ข้อควรระวัง(***) เวลาคอมพิวเตอร์เก็บค่าอาจจะเก็บค่าได้ไม่ตรงตามจำนวนที่เราเห็น ตัวอย่างเช่น 1.2 อาจจะเก็บค่าจริงเป็น 1.2000000000000001 เพราะฉะนั้นต้องระวังให้ดีเวลาเปรียบเทียบทศนิยมอาจจะไม่เท่ากัน เวลากระทำการใดๆ กับทศนิยม ควรใช้ math library โดยตรงเลยดีกว่า
ตัวอย่างเช่น

let d:Double = 1.1
let f:Float = 1.1
print( d==f)                    // Error เพราะ data type คนละชนิดกัน
print( d==Double(f) )           // จะได้ค่า false เพราะอย่างที่บอกข้างต้นในคอมพิวเตอร์อาจจะมีการเก็บค่าเป็น 1.10000000000001
print(Double(f))                // ผลที่ได้ค่าดังนี้ 1.10000002384186

รู้จักกับ String
string คือ กลุ่มของ character เช่น “Hello Swift” ใน swift นั้น string นั้นจะใช้ data type String  การเรียนใช้ String นั้นสามารถใช้ได้ทั้งจาก string โดยตรง หรืออาจผ่านการอ่านค่าจะ กลุ่มของ character
ตัวอย่างการประกาศข้อมูลประเภท String ดังนี้

var str:String = "Hello Swift""

การสร้าง Empty String

var emtpyString = ""                    //empty string
var secondEmptyString = String()        //initial string
// ทั้ง emptyString และ secondEmptyString นั้นเป็นค่าว่าง และทั้งสองตัวมีค่าเท่ากัน

การอ่านค่า String ทีละ Character

var str:String = "Hello Swift"
for c:Character in str.characters{
    print(c);
}

ซึ่งผลจะออกมาดังนี้

H
e
l
l
o
 
S
w
i
f
t

 

วันต่อไป >> Control Flow