Solidity - ไวยากรณ์พื้นฐาน
ไฟล์ซอร์ส Solidity สามารถมีข้อกำหนดสัญญาคำสั่งการนำเข้าและคำสั่ง pragma จำนวนเท่าใดก็ได้
เริ่มต้นด้วยซอร์สไฟล์อย่างง่ายของ Solidity ต่อไปนี้เป็นตัวอย่างของไฟล์ Solidity -
pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
Pragma
บรรทัดแรกคือคำสั่ง pragma ซึ่งบอกว่าซอร์สโค้ดเขียนขึ้นสำหรับ Solidity เวอร์ชัน 0.4.0 หรืออะไรที่ใหม่กว่าที่ไม่ทำลายฟังก์ชันการทำงาน แต่ไม่รวมถึงเวอร์ชัน 0.6.0
คำสั่ง pragma อยู่ในเครื่องของไฟล์ต้นฉบับเสมอและหากคุณนำเข้าไฟล์อื่น pragma จากไฟล์นั้นจะไม่ใช้กับไฟล์ที่นำเข้าโดยอัตโนมัติ
ดังนั้น pragma สำหรับไฟล์ที่จะไม่คอมไพล์ก่อนหน้าเวอร์ชัน 0.4.0 และจะไม่ทำงานบนคอมไพเลอร์ที่เริ่มจากเวอร์ชัน 0.5.0 จะเขียนดังนี้ -
pragma solidity ^0.4.0;
นี่คือเงื่อนไขที่สองถูกเพิ่มโดยใช้ ^
สัญญา
สัญญา Solidity คือชุดของรหัส (ฟังก์ชัน) และข้อมูล (สถานะของมัน) ที่อยู่ตามที่อยู่เฉพาะบน Ethereumblockchain
บรรทัด uintstoredData ประกาศตัวแปรสถานะที่เรียกว่าorageDataของประเภท uint และฟังก์ชันที่ตั้งค่าและรับสามารถใช้เพื่อแก้ไขหรือดึงค่าของตัวแปร
การนำเข้าไฟล์
แม้ว่าตัวอย่างข้างต้นจะไม่มีคำสั่งนำเข้า แต่ Solidity สนับสนุนคำสั่งนำเข้าที่คล้ายกับที่มีอยู่ใน JavaScript
คำสั่งต่อไปนี้นำเข้าสัญลักษณ์ส่วนกลางทั้งหมดจาก "filename"
import "filename";
ตัวอย่างต่อไปนี้สร้างสัญลักษณ์สากลใหม่ symbolName ซึ่งสมาชิกเป็นสัญลักษณ์ส่วนกลางทั้งหมดจาก "ชื่อไฟล์"
import * as symbolName from "filename";
ในการนำเข้าไฟล์ x จากไดเร็กทอรีเดียวกันกับไฟล์ปัจจุบันให้ใช้ import "./x" เป็น x; หากคุณใช้การนำเข้า "x" เป็น x; แต่อาจมีการอ้างอิงไฟล์อื่นใน "รวมไดเรกทอรี" ทั่วโลก
คำหลักที่สงวนไว้
ต่อไปนี้เป็นคำหลักที่สงวนไว้ใน Solidity -
บทคัดย่อ | หลังจาก | นามแฝง | สมัคร |
อัตโนมัติ | กรณี | จับ | สำเนา |
ค่าเริ่มต้น | กำหนด | สุดท้าย | ไม่เปลี่ยนรูป |
ดำเนินการ | ใน | อินไลน์ | ปล่อย |
มาโคร | การแข่งขัน | ไม่แน่นอน | โมฆะ |
ของ | แทนที่ | บางส่วน | สัญญา |
เอกสารอ้างอิง | เคลื่อนย้ายได้ | ปิดผนึก | ขนาดของ |
คงที่ | รองรับ | สวิตซ์ | ลอง |
typedef | ประเภทของ | ไม่เลือก |