Tcl - ไวยากรณ์พื้นฐาน
Tcl นั้นค่อนข้างง่ายในการเรียนรู้และมาเริ่มสร้างโปรแกรม Tcl แรกของเรากันเถอะ!
โปรแกรม Tcl แรก
ให้เราเขียนโปรแกรม Tcl ง่ายๆ ไฟล์ Tcl ทั้งหมดจะมีนามสกุลคือ. tcl ดังนั้นใส่ซอร์สโค้ดต่อไปนี้ในไฟล์ test.tcl
#!/usr/bin/tclsh
puts "Hello, World!"
สมมติว่าสภาพแวดล้อม Tcl ถูกตั้งค่าอย่างถูกต้อง มารันโปรแกรมหลังจากเปลี่ยนเป็นไดเร็กทอรีของไฟล์แล้วรันโปรแกรมโดยใช้ -
$ tclsh test.tcl
เราจะได้ผลลัพธ์ดังต่อไปนี้ -
Hello, World!
ตอนนี้ให้เราดูโครงสร้างพื้นฐานของโปรแกรม Tcl เพื่อให้คุณเข้าใจโครงสร้างพื้นฐานของภาษา Tcl ได้ง่าย ใน Tcl เราใช้บรรทัดใหม่หรืออัฒภาคเพื่อยกเลิกบรรทัดก่อนหน้าของโค้ด แต่ไม่จำเป็นต้องใช้อัฒภาคหากคุณใช้ขึ้นบรรทัดใหม่สำหรับแต่ละคำสั่ง
ความคิดเห็น
ความคิดเห็นเป็นเหมือนการช่วยเหลือข้อความในโปรแกรม Tcl ของคุณและล่ามจะเพิกเฉยต่อสิ่งเหล่านี้ ความคิดเห็นสามารถเขียนโดยใช้เครื่องหมายแฮช _ (#) ในการเริ่มต้น
#!/usr/bin/tclsh
# my first program in Tcl
puts "Hello World!"
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
Hello World!
ความคิดเห็นหลายบรรทัดหรือบล็อกเขียนโดยใช้ 'if' with condition '0' ตัวอย่างแสดงด้านล่าง
#!/usr/bin/tclsh
if 0 {
my first program in Tcl program
Its very simple
}
puts "Hello World!"
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
Hello World!
ความคิดเห็นแบบอินไลน์ใช้; #. ตัวอย่างได้รับด้านล่าง
#!/usr/bin/tclsh
puts "Hello World!" ;# my first print in Tcl program
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
Hello World!
ตัวระบุ
ตัวระบุ Tcl คือชื่อที่ใช้เพื่อระบุตัวแปรฟังก์ชันหรือรายการที่ผู้ใช้กำหนดอื่น ๆ ตัวระบุเริ่มต้นด้วยตัวอักษร A ถึง Z หรือ a ถึง z หรือขีดล่าง (_) ตามด้วยตัวอักษรศูนย์หรือมากกว่าขีดล่างดอลลาร์ ($) และตัวเลข (0 ถึง 9)
Tcl ไม่อนุญาตให้ใช้อักขระเครื่องหมายวรรคตอนเช่น @ และ% ภายในตัวระบุ Tcl คือcase sensitive_ ภาษา ดังนั้นกำลังคนและกำลังคนจึงเป็นตัวบ่งชี้สองตัวที่แตกต่างกันใน Tcl นี่คือตัวอย่างบางส่วนของตัวระบุที่ยอมรับได้ -
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
คำสงวน
รายการต่อไปนี้แสดงคำสงวนบางส่วนใน Tcl ห้ามใช้คำสงวนเหล่านี้เป็นค่าคงที่หรือตัวแปรหรือชื่อตัวระบุอื่น ๆ
หลังจาก | ผนวก | อาร์เรย์ | auto_execok |
auto_import | auto_load | auto_load_index | auto_qualify |
ไบนารี่ | Bgerror | หยุดพัก | จับ |
ซีดี | นาฬิกา | ปิด | concat |
ดำเนินการต่อ | ผบ | ค่าเริ่มต้น | อื่น |
อื่น ๆ | การเข้ารหัส | eof | ข้อผิดพลาด |
ประเมิน | Exec | ทางออก | expr |
fblocked | F กำหนดค่า | fcopy | ไฟล์ |
fileevent | ฟลัช | สำหรับ | แต่ละ |
รูปแบบ | ได้รับ | ลูกโลก | ทั่วโลก |
ประวัติศาสตร์ | ถ้า | ข้อมูล | ล่าม |
เข้าร่วม | Lappend | ต้นไม้ชนิดหนึ่ง | linsert |
รายการ | ความยาว | โหลด | lrange |
lreplace | Lsearch | สั้น | เนมสเปซ |
เปิด | แพ็คเกจ | pid | pkg_mkIndex |
proc | ทำให้ | pwd | อ่าน |
regexp | Regsub | เปลี่ยนชื่อ | ทรัพยากร |
กลับ | สแกน | แสวงหา | ชุด |
เบ้า | ที่มา | แยก | สตริง |
สถานีย่อย | สวิตซ์ | tclLog | บอก |
เวลา | ติดตาม | ไม่ทราบ | ยกเลิกการตั้งค่า |
อัพเดต | Uplevel | upvar | ตัวแปร |
vwait | ในขณะที่ |
ช่องว่างใน Tcl
บรรทัดที่มีเฉพาะช่องว่างซึ่งอาจมีความคิดเห็นเรียกว่า a blank lineและล่าม Tcl ไม่สนใจมันโดยสิ้นเชิง
Whitespace เป็นคำที่ใช้ใน Tcl เพื่ออธิบายช่องว่างแท็บอักขระขึ้นบรรทัดใหม่และข้อคิดเห็น ช่องว่างแยกส่วนหนึ่งของคำสั่งออกจากอีกส่วนหนึ่งและช่วยให้ล่ามระบุตำแหน่งที่องค์ประกอบหนึ่งในคำสั่งเช่น puts สิ้นสุดและองค์ประกอบถัดไปเริ่มต้น ดังนั้นในข้อความต่อไปนี้ -
#!/usr/bin/tclsh
puts "Hello World!"
ต้องมีอักขระเว้นวรรคอย่างน้อยหนึ่งตัว (โดยปกติจะเป็นช่องว่าง) ระหว่าง "puts" และ "Hello World!" เพื่อให้ล่ามสามารถแยกแยะได้ ในทางกลับกันในข้อความต่อไปนี้ -
#!/usr/bin/tclsh
puts [expr 3 + 2] ;# print sum of the 3 and 2
เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -
5
ไม่จำเป็นต้องใช้อักขระเว้นวรรคระหว่าง 3 ถึง + หรือระหว่าง + และ 2 แม้ว่าคุณมีอิสระที่จะรวมบางส่วนหากคุณต้องการเพื่อจุดประสงค์ในการอ่าน