วันจันทร์, มิถุนายน 17

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 – ชนิดของตัวแปร

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1

จากภาคที่แล้วที่ผมได้เกริ่นเรื่องของ Smart Contract ไว้ ซึ่งก็คงเข้าใจกันบ้างไม่มากก็น้อยนะครับ กลับมาคราวนี้เลยจะเป็นภาคต่อของเรื่อง Smart Contract ซึ่งเราจะลง code กันและ

ก่อนอื่นเลยจะต้องบอกก่อนว่า ถ้าจะเขียน Smart Contract เนี่ยควรจะมีพื้นฐานของภาษา Java Script อยู่บ้าง จะทำให้พอเข้าใจอะไร ๆ  ได้ง่ายขึ้น เพราะ Syntax ของภาษาที่ใช้เขียน code ของ Smart Contract หรือที่เรียกว่า Solidity นั้น มีพื้นฐานมาจาก Java Script นั้นเอง (แต่ก็ไม่ได้เหมือน 100% นะครับ)

ก่อนอื่นเลยสิ่งแรกที่ควรรู้จัก ก็คือ Data type ที่มีให้เราใช้งานได้ในภาษานี้นะครับ ซึ่งถึงแม้ผมจะบอกว่าเหมือน Java Script ก็จริง แต่จริง ๆ ภาษานี้ก็ต้องประกาศ Data type ให้กับตัวแปรที่เราสร้างขึ้น (ถึงแม้จะใช้คำสั่ง var ได้เหมือนในภาษา Java Script ก็เถอะ แต่ที่ถูกที่ควร ควรใช้ Data type จริง ๆ ของมัน) โดย Data type หลักที่เรามักใช้กันนั้นมีดังนี้

  1. int – ก็คือตัวเลขนั้นเอง ซึ่งเป็นตัวเลขแบบ integer ที่ programmer ทั่วไปรู้จักกันดีนั่นเอง โดยขนาดของตัวแปร int นั้นถ้าเราไม่กำหนดขนาดให้มัน มันจะ default ไว้ที่ 256 bit แต่เราสามารถลดขนาดมันได้โดยการบอกขนาดที่ต้องการลงไปด้วยเช่น    จะหมายถึงตัวแปร a ที่มีชนิดเป็น integer ขนาด 8 bit ซึ่งขนาดที่กำหนดได้จะมีตั้งแต่ 8, 16, 32, 64, 128 และ 256 bit ครับ (ควรกำหนดให้พอดีกับการใช้งานจะดีที่สุด เพราะขนาดที่ใหญ่ขึ้น หมายถึงค่า gas ที่เราต้องเสียมากขึ้นด้วย)
  2. uint – อันนี้ก็เป็นตัวแปรแบบตัวเลขอีกเช่นกัน แต่เป็นแบบ unsigned integer ซึ่งนอกนั้นก็เหมือนกับประเภท int เลย ประกาศขนาดได้เช่นกัน
  3. bool – สำหรับ Data type อันนี้ ก็น่าจะคุ้นเคยเช่นกัน คงจะเดากันได้ครับ ว่ามันก็คือ Boolean นั้นเอง มีหน้าที่เก็บค่าแค่ true หรือ false
  4. string – อันนี้ก็คงคุ้นเคยกันอยู่และเหมือนเดิม ก็ string ตามชื่อแหล่ะครับ เอาไว้เก็บสายของตัวอักขระ
  5. address – ตัวนี้เป็น Data type ใหม่ที่เพิ่มเข้ามาในภาษา solidity สำหรับเอาไว้เก็บข้อมูลที่อยู่ ไม่ว่าจะเป็น wallet ของบุคคลหรือที่อยู่ของ Smart Contract ที่ deploy ขึ้น ethereum network
  6. mapping – Data type อันนี้จะไว้สำหรับเก็บข้อมูลแบบ collection โดยเก็บแบบมี key คู่กับ value เช่นเดียวกับตัวแปรแบบ Map ในภาษา Java เลยครับ ตัวอย่างการประกาศจะเป็นดังนี้  หมายความว่าเราจะประกาศตัวแปรชื่อ data โดยมีส่วน key สำหรับเรียกข้อมูลเป็นประเภท int และข้อมูลที่เก็บเป็นประเภท string
  7. struct – สำหรับ Data type ประเภทนี้นั้น มันคือการรวมเอา Data type อื่น ๆ มา pack เป็นตัวแปรใหม่ซึ่งมองง่าย ๆ ก็คล้าย ๆ กัน object ในภาษา OOP ทั่วไป แต่อาจจะยังไม่เห็นภาพ มาดูตัวอย่างดีกว่าครับ

ในตัวอย่างนี้จะขอสร้าง stuct ไว้เก็บข้อมูลคนโดยจะมีชื่อ อายุ สถานะโสด

ส่วนเวลาจะประกาศตัวแปรนั้นประกาศอย่างนี้  จะเห็นได้ว่าคล้าย Object ในภาษา OOP ส่วนเวลาจะใช้งาน ก็ไม่ต่างเลยครับ แบบนี้ เพื่อเอาข้อมูล name

ยังไงสามารถดูเพิ่มเติมได้ที่ http://solidity.readthedocs.io/en/develop/types.html เลยนะครับ

 

ทำไปทำมาแค่เรื่อง Data type ก็ยาวละ ผมจะต้องขอเบรกไว้ก่อนไว้จะขอมาต่อภายหลังนะครับ ต้องขออภัย แหะๆ ^__^

 

Facebook Comments