Go 101 ค่าคงที่ เลขฐาน 8,10,16 และ Comments ในภาษาโก

golang-ep6

บทความนี้เราจะมาทำความเข้าใจในเรื่องค่าคงที่ในภาษาโก เช่น 30 , 100.88 , 0x23FF , 056 , “DekDoyDev” เหล่านี้คือค่าคงที่คือค่าที่เราไม่สามารถเปลี่ยนแปลงมันได้ (fixed value) ซึ่งเราจะได้นำมาใช้ในการเขียนโปรแกรมภาษาโก สัญลักษณ์ต่างๆในการใช้ร่วมกับค่าคงที่ (constants) เช่น 0x , 0X , e (exponential) และ comments ในภาษาโก

1. เลขฐาน 10 (Decimal), เลขฐาน 8 (Octal), เลขฐาน 16 (Hexadecimal)

เลขฐานสัญลักษณ์ตัวเลขที่มีได้ข้อสังเกตุตัวอย่าง
เลขฐาน 8 (Octal)00,1,2,3,4,5,6,7มี 0 นำหน้า027, 056, 030
เลขฐาน 10 (Decimal)0,1,2,3,4,5,6,7,8,910, 99, 6656
เลขฐาน 16 (Hexadecimal)0X0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fมี 0x นำหน้า0x10FE, 0xA012F, 0xABCD

ตัวอย่าง

package main

import (
	"fmt"
)

func main() {

	age1 	:= 39
	age2 	:= 99

	number1 := 011
	number2 := 017
	number3 := 0x11

	price1 := 3.145687
	price2 := 2.2e5
	price3 := 12e-1

	name := "DekDoyDev"

	fmt.Println("age1 = ",age1)
	fmt.Println("age2 = ",age2)
	fmt.Println("number1 = ",number1)
	fmt.Println("number2 = ",number2)
	fmt.Println("number3 = ",number3)
	fmt.Println("price1 = ",price1)
	fmt.Println("price2 = ",price2)
	fmt.Println("price3 = ",price3)
	fmt.Println("name = ",name)
}
  • บรรทัดที่ 9-10 ประกาศตัวแปรพร้อมกำหนดค่าเป็นเลขฐาน 10 มีค่าเท่ากับ 39 และ 99
  • บรรทัดที่ 12 ประกาศตัวแปรพร้อมกำหนดค่าด้วยเลขฐาน 8 => 011 หากแปลงค่าออกมาเป็นเลขฐาน 10 แล้วจะได้ค่าเท่ากับ 9
  • บรรทัดที่ 13 ประกาศตัวแปรพร้อมกำหนดค่าด้วยเลขฐาน 8 => 017 หากแปลงค่าออกมาเป็นเลขฐาน 10 แล้วจะได้ค่าเท่ากับ 15
  • บรรทัดที่ 14 ประกาศตัวแปรพร้อมกำหนดค่าด้วยเลขฐาน 16 => 0x17 หากแปลงค่าออกมาเป็นเลขฐาน 10 แล้วได้ค่าเท่ากับ 17
  • บรรทัดที่ 16 ประกาศตัวแปรพร้อมกำหนดค่าเท่ากับ 3.145687
  • บรรทัดที่ 17 ประกาศตัวแปรพร้อมกำนหนดค่าเท่ากับ 2.2e5 โดย e คือ exponential เลขชี้กำลัง มีค่าคือ 2.2 x 10 ยกกำลัง 5 ซึ่งมีค่าคือ 2.2×100000 = 220000 ดังผลลัพธ์ด้านล่าง
  • บรรทัดที่ 18 ประกาศตัวแปรพร้อมกำนหนดค่าเท่ากับ 12e-1 โดย e คือ exponential เลขชี้กำลัง มีค่าคือ 12 x 10 ยกกำลัง -1 ซึ่งมีค่าคือ 12×0.1 = 1.2 ดังผลลัพธ์ด้านล่าง

2.สัญลักษณ์ (\) backslash นำหน้าอักษร

ในภาษาโกจะมีการใช้ \ กับตัวอักษรทำให้เกิดอักขระพิเศษที่นำไปใช้งานการเขียนโปรแกรมได้ เช่น \n คือการขึ้นบรรทัดใหม่ , \t คือการขยับตำแหน่งไปทางด้านขวา 1 tab โดยมีตารางดังด้านล่าง

สัญลักษณ์ผลลัพธ์
\\\ character
\’‘ character
\”” character
\aAlert or bell
\bBackspace
\fForm feed
\nNewline
\rCarriage return
\tHorizontal tab
\vVertical tab

3. ตัวแปรคงที่ Constants Variable

นอกจากข้อมูลคงที่แล้วในภาษาโกก็ยังมีตัวแปรคงที่ คือตัวแปรนั้นจะไม่สามารถเปลี่ยนค่าข้อมูลได้ ด้วย keyword const เช่น const name string = “DekDoyDev”;

ตัวอย่าง

package main

import (
	"fmt"
)

func main() {

	const name string = "DekDoyDev"
	
	const number int = 345

	price := 1000
	
	fmt.Println("name = ",name)
	fmt.Println("number = ",number)
	fmt.Println("price = ",price)

	//name = "Go 101"
	//number = 678
	//price  = 1500
	
}
  • บรรทัดที่ 9 ใช้ keywords const เป็นการประกาศตัวแปรคงที่ name มีค่าเท่ากับ “DekDoyDev”
  • บรรทัดที่ 11 ใช้ keywords const เป็นการประกาศตัวแปรคงที่ number มีค่าเท่ากับ 345
  • บรรทัดที่ 13 เป็นการประกาศตัวแปร price มีค่าเท่ากับ 1000
  • บรรทัดที่ 15-16-17 เป็นการแสดงผลของตัวแปรทั้ง 3 ดังภาพด้านล่าง

ตัวอย่าง(ต่อ)

package main

import (
	"fmt"
)

func main() {

	const name string = "DekDoyDev"
	
	const number int = 345

	price := 1000
	
	fmt.Println("name = ",name)
	fmt.Println("number = ",number)
	fmt.Println("price = ",price)

	name = "Go 101"
	number = 678
	price  = 1500
	
}
  • บรรทัดที่ 19 จะเกิด error เพราะเป็นการกำหนดค่าใหม่ให้ตัวแปร name ซึ่งไม่สามารถทำได้เนื่องจากตัวแปร name เป็นตัวแปรคงที่ ดังประกาศไว้ในบรรทัดที่ 9 ดังภาพด้านล่าง
  • บรรทัดที่ 20 จะเกิด error เพราะเป็นการกำหนดค่าใหม่ให้ตัวแปร number ซึ่งไม่สามารถทำได้เนื่องจากตัวแปร number เป็นตัวแปรคงที่ ดังประกาศไว้ในบรรทัดที่ 11 ดังภาพด้านล่าง
  • บรรทัดที่ 21 เป็นการกำหนดค่าให้ตัวแปร price เท่ากับ 1500 ซึ่งสามารถทำได้เพราะตัวแปร price ไม่ใช่ตัวแปรคงที่

4. คอมเมนท์ในภาษาโก (Go Comments)

คอมเมนท์ในภาษาโกมีไว้เพื่อให้โปรแกรมเมอร์สามารถเขียนอธิบายการทำงานของโปรแกรมหรือฟังก์ชันเพื่อในอนาคตตนเองหรือคนอื่นมาอ่านโค๊ดจะได้ช่วยให้เข้าใจได้ง่าย โดยโปรแกรมจะไม่เอาคอมเมนท์ไปทำงานแต่อย่างใด ซึ่งคอมเมนท์ในภาษาโกมี 2 แบบ คือ 1. Single Line คอมเมนท์ 1 บรรทัด 2. Multiple Line คอมเมนท์หลายบรรทัด

Single Line Comments ใช้สัญลักษณ์ ( // )

import (
	"fmt"
)
// This is main function
func main() {
	 
	const name string = "Golang 101"
    //name = "DekDoyDev"
	
	fmt.Println("name = ",name)
}
  • บรรทัดที่ 4 เป็นการเขียนคอมเมนท์โค๊ด 1 บรรทัด ด้วยสัญลักษณ์ // this is main function
  • บรรทัดที่ 8 เป็นการเขียนคอมเมนท์โค๊ด 1 บรรทัด ทำให้คำสั่ง name = “DekDoyDev” ไม่ถูกทำงาน ทำให้ผลลัพธ์การรันโปรแกรมได้ดังภาพด้านล่าง คือ name = Golang 101 ไม่ใช่ DekDoyDev

Multiple Line Comments ใช้สัญลักษณ์ ( /* */ )

package main

import (
	"fmt"
)
// This is main function
func main() {
	/* 
    Declare variable name = "DekDoyDev"
	var name string = "DekDoyDev"
	
	const number int = 345
    fmt.Println("number = ",number)
	*/

	price := 1000
	fmt.Println("price = ",price)
}
  • บรรทัดที่ 8-13 เป็นการเขียนคอมเมนท์โค๊ดแบบหลายบรรทัด สังเกตุบรรทัดที่ 13 ผลลัพธ์จะไม่แสดง number = 345 ออกมา เพราะถูกคอมเมนท์ไว้นั่นเอง
  • บรรทัดที่ 16,17 ไม่ถูกคอมเมนท์จึงทำงานได้ดังภาพด้านล่าง

สำหรับบทความนี้ทำให้เข้าใจค่าข้อมูลคงที่ constants ตัวสัญลักษณ์ต่างๆที่นำมาใช้งาน เลขฐานแปด เลขฐานสิบหก และตัวแปรคงที่ที่กำหนดค่าแล้วไม่สามารถเปลี่ยนแปลงค่าได้ การเขียนคอมเมนท์ ประโยชน์ พร้อมตัวอย่าง หวังว่าคงพอจะมีประโยชน์สำหรับคนที่กำลังศึกษาบ้างไม่มากก็น้อยนะครับ.