มันเป็นน้ำตาลประโยคสำหรับสคริปต์พื้นฐาน การละเว้นคำหลัก "def" จะทำให้ตัวแปรอยู่ในการเชื่อมโยงสำหรับสคริปต์ปัจจุบันและ groovy ปฏิบัติต่อมัน (ส่วนใหญ่) เหมือนกับตัวแปรที่กำหนดขอบเขตทั่วโลก:
x = 1
assert x == 1
assert this.binding.getVariable("x") == 1
การใช้คำหลัก def แทนไม่ได้ใส่ตัวแปรในการผูกสคริปต์:
def y = 2
assert y == 2
try {
    this.binding.getVariable("y") 
} catch (groovy.lang.MissingPropertyException e) {
    println "error caught"
} 
พิมพ์: "จับข้อผิดพลาด"
การใช้คีย์เวิร์ด def ในโปรแกรมที่มีขนาดใหญ่นั้นมีความสำคัญเนื่องจากช่วยกำหนดขอบเขตที่ตัวแปรสามารถพบได้และสามารถช่วยรักษา encapsulation ได้
หากคุณกำหนดวิธีในสคริปต์ของคุณจะไม่สามารถเข้าถึงตัวแปรที่สร้างขึ้นด้วย "def" ในเนื้อหาของสคริปต์หลักเนื่องจากไม่อยู่ในขอบเขต:
 x = 1
 def y = 2
public bar() {
    assert x == 1
    try {
        assert y == 2
    } catch (groovy.lang.MissingPropertyException e) {
        println "error caught"
    }
}
bar()
พิมพ์ "จับข้อผิดพลาด" 
ตัวแปร "y" ไม่ได้อยู่ในขอบเขตภายในฟังก์ชั่น "x" อยู่ในขอบเขตที่ Groovy จะตรวจสอบการเชื่อมโยงของสคริปต์ปัจจุบันสำหรับตัวแปร ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้เป็นเพียงน้ำตาลประโยคเพื่อให้สคริปต์ที่รวดเร็วและสกปรกสามารถพิมพ์ออกมาได้อย่างรวดเร็ว
แนวปฏิบัติที่ดีในสคริปต์ที่ใหญ่กว่าคือการใช้คำหลัก "def" เสมอดังนั้นคุณจะไม่พบปัญหาการกำหนดขอบเขตแปลก ๆ หรือรบกวนตัวแปรที่คุณไม่ต้องการ
               
              
new FileInputStream('Test.groovy').getChannel()นำเข้า?