Mục lục
BÀI HỌC 1 - Làm quen với Lua: Viết và chạy chương trình đơn giản, hiểu biến và làm việc với kiểu dữ liệu cơ bản
1. Viết chương trình Lua đầu tiên
Một cách tuyệt vời để bắt đầu học bất kỳ ngôn ngữ lập trình nào là viết một chương trình đơn giản in ra dòng chữ “Hello, World!”. Chương trình cơ bản này sẽ giúp bạn làm quen với cú pháp của Lua và hàm print.
Ví dụ mã:
print("Hello, Mini World: CREATA!")
Giải thích:
- print: Đây là một hàm có sẵn trong Lua, dùng để in văn bản ra màn hình. Hàm là thành phần quan trọng trong mọi ngôn ngữ lập trình, và print là một trong những hàm đơn giản nhất bạn có thể dùng.
- “Hello, Mini World: CREATA!”: Đây là một chuỗi (string), tức là một dãy ký tự được đặt trong dấu ngoặc kép. Hàm print sẽ nhận chuỗi này làm đối số và hiển thị nó ra màn hình.
Khi bạn chạy chương trình này, bạn sẽ thấy dòng chữ “Hello, Mini World: CREATA!” hiển thị. Điều này cho thấy môi trường Lua đã được cài đặt đúng và bạn có thể chạy chương trình Lua thành công.
Bài tập:
- Viết chương trình in ra dòng chữ “Hello, Mini World Developer!” bằng Lua.
- Chạy chương trình để xem kết quả.
- Thử thay đổi nội dung chuỗi để in tên của bạn hoặc một thông điệp khác.
Ví dụ mã bài tập:
print("Hello, Mini World Developer!")
2. Biến trong Lua
Biến được dùng để lưu trữ dữ liệu và cho phép bạn sử dụng hoặc thay đổi dữ liệu đó trong suốt chương trình. Trong Lua, bạn có thể khai báo biến bằng từ khóa local. Phần này sẽ hướng dẫn cách khai báo, gán giá trị và sử dụng biến trong Lua.
Ví dụ mã:
local myDevLevel = 3 local myMiniWorldString = "Hello, Player!" local myMiniWorldBoolean = true print(myDevLevel) print(myMiniWorldString) print(myMiniWorldBoolean)
Giải thích:
- local: Từ khóa dùng để khai báo một biến cục bộ, nghĩa là biến đó chỉ được sử dụng bên trong khối mã nơi nó được định nghĩa.
- myDevLevel, myMiniWorldString, myMiniWorldBoolean: Đây là các tên biến. Trong Lua, tên biến phân biệt chữ hoa và thường, và nên đặt tên có ý nghĩa để thể hiện rõ dữ liệu mà nó lưu.
- 3, “Hello, Player!”, true: Đây là các giá trị được gán cho biến. Lua hỗ trợ nhiều kiểu dữ liệu khác nhau như số (number), chuỗi (string), và giá trị logic (boolean).
Thực hành:
Khai báo một vài biến với các kiểu dữ liệu khác nhau và dùng hàm print để in giá trị của chúng ra màn hình:
local level = nil local name = "Don" local isDev = true print(level) print(name) print(isDev)
3. Kiểu dữ liệu cơ bản
Hiểu rõ kiểu dữ liệu là một phần quan trọng trong lập trình, vì chúng xác định loại dữ liệu mà bạn có thể sử dụng và xử lý. Lua hỗ trợ một số kiểu dữ liệu cơ bản như sau:
Number (Số)
Trong Lua, kiểu số có thể là số nguyên hoặc số thực (thập phân). Chúng thường được dùng trong các phép tính toán học và xử lý số liệu.
Ví dụ:
local age = 30 local height = 1.75 print(age) -- in ra: 30 print(height) -- in ra: 1.75
String (Chuỗi)
Chuỗi là dãy ký tự dùng để biểu diễn văn bản. Trong Lua, chuỗi có thể được đặt trong dấu nháy kép “ “ hoặc nháy đơn ' '.
Ví dụ:
local greeting = "Hello, World!" local singleQuoteString = 'This is also a string' print(greeting) print(singleQuoteString)
Boolean (Giá trị đúng/sai)
Kiểu boolean biểu diễn giá trị đúng (true) hoặc sai (false). Chúng thường được dùng trong các câu lệnh điều kiện để điều khiển luồng chương trình.
Ví dụ:
local isLuaFun = true local isRaining = false print(isLuaFun) -- in ra: true print(isRaining) -- in ra: false
Nil (Giá trị rỗng)
nil đại diện cho một giá trị không tồn tại hoặc chưa được gán. Đây là cách Lua biểu thị “không có gì”.
Ví dụ:
local nothing = nil print(nothing) -- in ra: nil
Thực hành:
- Tạo các biến với các kiểu dữ liệu khác nhau: số, chuỗi, boolean, nil.
- Dùng hàm print để in giá trị của các biến ra màn hình.
- Thay đổi giá trị của biến và in lại để quan sát sự thay đổi.
Ví dụ:
local temperature = 23.5 local weather = "Sunny" local isSummer = true local unknown = nil print(temperature) print(weather) print(isSummer) print(unknown) -- Thay đổi giá trị temperature = 30 weather = "Cloudy" isSummer = false print(temperature) print(weather) print(isSummer)
4. Tìm hiểu thêm về Chuỗi (Strings)
Chuỗi trong Lua rất linh hoạt và đi kèm nhiều hàm hữu ích để thao tác. Phần này sẽ giới thiệu về cách nối chuỗi, đo độ dài chuỗi, và một số hàm xử lý chuỗi cơ bản.
🔹 Nối chuỗi
Nối chuỗi là quá trình kết hợp hai chuỗi lại với nhau. Trong Lua, toán tử .. được dùng để nối chuỗi.
Ví dụ:
local firstName = "Mini" local lastName = "World" local fullName = firstName .. " " .. lastName print(fullName) -- in ra: Mini World
🔹 Độ dài chuỗi
Bạn có thể lấy độ dài của một chuỗi bằng toán tử #.
Ví dụ:
local myString = "Hello, Lua!" local length = #myString print(length) -- in ra: 11
🔹 Các hàm chuỗi trong Lua
Lua cung cấp nhiều hàm xử lý chuỗi có sẵn như string.upper, string.lower, và string.sub.
Ví dụ:
local myString = "Hello, All Developer" -- Chuyển sang chữ in hoa local upperString = string.upper(myString) print(upperString) -- in ra: HELLO, ALL DEVELOPER -- Chuyển sang chữ thường local lowerString = string.lower(myString) print(lowerString) -- in ra: hello, all developer -- Cắt chuỗi con (substring) local subString = string.sub(myString, 1, 5) print(subString) -- in ra: Hello
Thực hành:
- Tạo 2 biến kiểu chuỗi và nối chúng lại.
- Tính và in ra độ dài của một chuỗi.
- Dùng các hàm string.upper, string.lower và string.sub để xử lý chuỗi và in kết quả ra màn hình.
Ví dụ:
local greeting = "Good" local timeOfDay = " Morning" local fullGreeting = greeting .. timeOfDay print(fullGreeting) -- in ra: Good Morning local message = "Hello, World!" local messageLength = #message print(messageLength) -- in ra: 13 local upperMessage = string.upper(message) local lowerMessage = string.lower(message) local partialMessage = string.sub(message, 1, 5) print(upperMessage) -- in ra: HELLO, WORLD! print(lowerMessage) -- in ra: hello, world! print(partialMessage) -- in ra: Hello
5. Tìm hiểu thêm về Số (Numbers)
Các con số trong Lua rất đơn giản, nhưng bạn có thể thực hiện nhiều thao tác và hàm khác nhau với chúng. Phần này sẽ trình bày về các phép toán số học, các hàm toán học, và chuyển đổi kiểu dữ liệu.
🔹 Phép toán số học
Lua hỗ trợ các phép toán cơ bản như cộng, trừ, nhân, chia và chia lấy dư.
Ví dụ:
local a = 10 local b = 5 local sum = a + b -- 15 local difference = a - b -- 5 local product = a * b -- 50 local quotient = a / b -- 2 local modulus = a % b -- 0 print(sum) print(difference) print(product) print(quotient) print(modulus)
🔹 Các hàm toán học
Thư viện math của Lua cung cấp nhiều hàm hữu ích để thực hiện các phép toán, ví dụ như: math.sqrt, math.floor, math.ceil, và math.random.
Ví dụ:
local number = 16 local squareRoot = math.sqrt(number) -- 4 local floorValue = math.floor(4.7) -- 4 (làm tròn xuống) local ceilValue = math.ceil(4.2) -- 5 (làm tròn lên) local randomValue = math.random(1, 10) -- Số ngẫu nhiên từ 1 đến 10 print(squareRoot) print(floorValue) print(ceilValue) print(randomValue)
🔹 Chuyển đổi kiểu dữ liệu
Lua cho phép chuyển đổi giữa các kiểu dữ liệu, ví dụ như từ số sang chuỗi và ngược lại.
Ví dụ:
local num = 42 local str = tostring(num) -- Chuyển số thành chuỗi print(str) -- in ra: "42" print(type(str)) -- in ra: string local numStr = "123" local numValue = tonumber(numStr) -- Chuyển chuỗi thành số print(numValue) -- in ra: 123 print(type(numValue)) -- in ra: number
Thực hành:
- Thực hiện các phép toán cơ bản trên 2 biến số.
- Sử dụng một số hàm trong thư viện math và in kết quả ra.
- Chuyển số thành chuỗi và ngược lại, sau đó in kết quả ra màn hình.
Ví dụ:
local x = 8 local y = 3 local addition = x + y local subtraction = x - y local multiplication = x * y local division = x / y local mod = x % y print("Addition:", addition) print("Subtraction:", subtraction) print("Multiplication:", multiplication) print("Division:", division) print("Modulo:", mod) -- Hàm toán học local num = 25 local sqrtValue = math.sqrt(num) local roundedDown = math.floor(7.8) local roundedUp = math.ceil(7.2) local randomValue = math.random(1, 100) -- Số ngẫu nhiên từ 1 đến 100 print("Căn bậc hai của", num, "là:", sqrtValue) print("Làm tròn xuống 7.8:", roundedDown) print("Làm tròn lên 7.2:", roundedUp) print("Số ngẫu nhiên từ 1 đến 100:", randomValue)
💡 Giải thích:
Phép toán số học:
- +, -, *, /, %: thực hiện các phép toán cơ bản trên x và y.
Hàm toán học:
- math.sqrt(num): tính căn bậc hai của num.
- math.floor(7.8): làm tròn xuống.
- math.ceil(7.2): làm tròn lên.
- math.random(1, 100): tạo số nguyên ngẫu nhiên từ 1 đến 100.
🎯 Thử thách nhỏ:
- Thêm đoạn mã trên vào script Lua hiện tại của bạn.
- Chạy script để xem kết quả các phép toán và hàm.
- Thử thay đổi giá trị của x, y và num để xem kết quả thay đổi như thế nào nhé!