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 ประเภทของ ไม่เลือก