วันจันทร์ที่ 27 เมษายน พ.ศ. 2558

Local Variable in Scala

เราสามารถประกาศตัวแปร (local variable) ใน Scala โดยใช้ syntax ดังต่อไปนี้

var {name} : {data type} = {initial value}

var x : Int = 0
var y : String = "John"
var z : Double = 1.0
var p : Boolean = true

การประกาศตัวแปรเราจะต้องกำหนดค่าเริ่มต้นให้เสมอ  ถ้าเราไม่ได้กำหนดค่าเริ่มต้นจะพบกับ compile error ดังนี้

"local variables must be initialized"


อย่างที่ได้กล่าวไว้ในบทความก่อนหน้านี้ว่า  Scala  เป็นภาษาที่ยืดหยุ่นมาก ดังนั้น ในบางครั้งการประกาศตัวแปร เพื่อความสะดวกเราไม่จำเป็นต้อง ประกาศชนิดข้อมูล (data type) ก้อได้ เช่น

x = 0
y = "John"
z = 1.0

compiler รู้ว่า  x เป็นตัวแปรชนิด interger,  y เป็นตัวแปรชนิด  string  และ z เป็นตัวแปรชนิด double โดยอัตโนมัติ  ทีนี้ถ้าหากว่าเราไป เปลี่ยนชนิดของตัวแปร  x  ให้เป็น double

x = 1.0

compiler จะฟ้องทันทีว่า

"type mismatched; found: Double(1.0) required: Int

เนื่องจากในตอนแรกเราประกาศให้ x เป็นตัวแปรชนิด integer เราไม่สามารถเปลี่ยนชนิดข้อมูลให้เป็น double หรืออย่างอื่นได้ในตอนหลัง อย่างไรก้อตาม เราสามารถเปลี่ยนค่า x ได้ ตราบเท่าที่มันยังเป็น integer อยู่

x = 1 //ok


สำหรับการใช้ parameter ก้อคล้ายๆ กับการประกาศตัวแปร เพียงแต่ไม่ต้องกำหนดค่าเริ่มต้นให้

def sum(a:Int, b:Int) : Int = {
    return a + b
}

เราได้ประกาศเมทธอด sum ขึ้นมาโดยรับ parameter 2 ตัวคือ a และ b  ทั้งคู่เป็น integer   เมทธอดนี้บวกค่า  a และ b แล้วคืนค่า integer กลับไป

var x = sum(1, 2)

เราประกาศตัวแปร x และกำหนดค่า เริ่มต้นโดยการเรียกใช้ เมทธอด sum   ท้ายที่สุดแล้ว  x จะเก็บค่า  3 นั่นเอง




ในบทความต่อไปเราจะมาดูกันต่อว่าการใช้ val จะเป็นอย่างไร แตกต่างจาก var  ตรงไหนบ้าง








ไม่มีความคิดเห็น: