Phát biểu trả về
Lập trình viên có thể khai báo các biến cục bộ trong mỗi kịch bản, các biến (viết dạng chữ thường) được khai báo ở đầu mỗi kịch bản và đặt giữa cặp ký hiệu |. Nếu xem mối quan hệ giữa đối tượng và lớp của nó như là biến và kiểu dữ liệu tương ứng thì sự khai báo biến của Smalltalk không bắt buộc phải khai báo kiểu, và chương trình sẽ có sự kiểm tra kiểu động, mỗi biến khi khai báo đều có giá trị là nil, và khi được gán với một đối tượng nào đó thì một biến sẽđại diện đối tượng mà nó được gán, như vậy một biến có thể tương ứng với nhiều đối tượng thuộc nhiều lớp khác nhau khi thực thi một kịch bản, tùy theo số lần biến đó được gán trong kịch bản ấy. Lập trình viên không thể sử dụng một biến chưa được khai báo trong một kịch bản.
Phát biểu gán là một phát biểu đặc biệt, nó sẽ tương ứng một biến với một đối tượng qua ký hiệu ‘:=’, sau khi phát biểu gán thực thi, mọi truy xuất đến biến đều là truy xuất đến đối tượng ấy. Kết quả của phát biểu gán là giá trị bên phải ký hiệu :=.
Ví dụ: a:= ‘aads’.
Ví dụ về một kịch bản có khai báo biến: |a|
a:= 65.
a := a asCharacter.
Kết quảđoạn chương trình trên sẽ là kết quả dòng lệnh sau cùng (ký tự $A)
Như vậy kết quả một kịch bản là kết quả của dòng lệnh cuối cùng của kịch bản, và sự thực thi một kịch bản sẽ là sự thực thi tuần tự từng lệnh của kịch bản. Tuy nhiên lập trình viên có thể chấm dứt kịch bản bằng ký hiệu ‘^’ đặt trước một câu lệnh bất kỳ của kịch bản. Khi gặp ký hiệu này, kịch bản sẽ ngừng sau khi thực thi phát biểu tiếp theo ký hiệu trên và trả về kết quả là kết quả của phát biểu đó (ý nghĩa của kí hiệu ‘^’ tương tự lệnh return của ngôn ngữ C)
Ví dụ về một kịch bản có lệnh trả về |a|
^a:= 1.
a := a asCharacter.
Kịch bản sẽ được chấm dứt ngay lệnh gán a:=1 và trả về kết quả của lệnh gán này (1). Như vậy, lệnh thứ hai (a := a asCharacter) sẽ không được thực thi.