-
Trình Thực Thi
Trình biên dịch Python Trình biên dịch C++ Trình biên dịch C Trình biên dịch Matplotlib Trình thông dịch Node.js Trình thông dịch PHP Trình biên dịch C# / .NET Trình biên dịch Rust Ruby Interpreter Trình biên dịch Java Trình biên dịch Go Trình biên dịch Kotlin Trình biên dịch Swift Trình biên dịch TypeScript
-
Học lập trình
Học Python Ví dụ chạy được, NumPy, pandas và nhiều nội dung khác Học AIMạng nơ-ron, học máy và LLM từ đầu Học C và C++ Con trỏ, bộ nhớ, STL và C++ hiện đại Học C#C# cơ bản, OOP, LINQ, async và bài tập .NET Học MatplotlibBiểu đồ đường, cột, phân tán và tròn với visualizer tương tác Thuật toán Python Tìm kiếm, sắp xếp, đệ quy và trình mô phỏng O(n) Thuật toán C và C++ So sánh cách cài đặt bằng C và C++ Lập trình cho trẻ em Vừa chơi vừa học lập trình!
- Thử tháchMới
- Cho giáo viênMới
- Cập Nhật mới nhất
- Mời mình một ly cà phê
Count down from start to 1, then add "Liftoff!". Each number becomes one text entry.
Implement countdown(start).
Input
start: The number to start counting down from.
Output
Return the countdown as a list of strings, ending with "Liftoff!".
Ràng buộc
0 ≤ start ≤ 1,000
Ví dụ
Ví dụ 1
Đầu vào:
start = 3
Kết quả mong đợi:
["3", "2", "1", "Liftoff!"]
Giải thích
"3", "2", "1", then "Liftoff!".
Ví dụ 2
Đầu vào:
start = 0
Kết quả mong đợi:
["Liftoff!"]
Giải thích
There is nothing to count, so only "Liftoff!" remains.
Tham khảo
-
Ví dụ 1 Chưa chạyĐầu vào:
start = 3Kết quả mong đợi:["3", "2", "1", "Liftoff!"]Kết quả của bạn -
Ví dụ 2 Chưa chạyĐầu vào:
start = 0Kết quả mong đợi:["Liftoff!"]Kết quả của bạn
Có 3 kiểm tra ẩn sẽ chạy khi bạn nộp bài. Nếu code chưa vượt qua một bài, bạn sẽ thấy bài đó. Giải xong thử thách để xem tất cả.
Trình biên dịch Go online
Viết, biên dịch, chạy và gỡ lỗi code Go trực tuyến trong IDE đầy đủ tính năng. Làm việc với nhiều tệp, lưu workspace và cộng tác theo thời gian thực mà không cần cài đặt.
🚀 206,970 tổng số lượt thực thi (799 trong tháng này)
Luyện Go với thử thách lập trình
Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.
🐹 Giới thiệu về Trình thực thi Go trực tuyến này
CodeUtility Go Executor cho phép bạn viết và chạy mã Go trực tiếp trên trình duyệt - không cần cài đặt, thiết lập hay môi trường cục bộ. Công cụ chạy trong sandbox an toàn, hỗ trợ các phiên bản trình biên dịch Go thật 1.19, 1.20, và 1.21.
Công cụ này biên dịch và thực thi các chương trình Go thật trên đám mây, mang đến một môi trường Go đúng nghĩa. Bạn có thể thử các đoạn mã ngắn, thử nghiệm với package, và khám phá khả năng đồng thời mạnh mẽ của Go với goroutine và channel.
Rất phù hợp để học và luyện tập các khái niệm cốt lõi của Go như biến, hàm, struct, slice, map, interface và xử lý lỗi - tất cả mà không cần cài đặt công cụ nào trên máy.
Dù bạn mới tìm hiểu Go, đang kiểm thử logic backend, hay học cách hoạt động của đồng thời, CodeUtility Go Executor mang đến cách chạy mã Go tức thì, nhanh, gọn, ngay trên trình duyệt.
Không chỉ là công cụ chạy mã
Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.
Cách sử dụng trình thực thi này?
Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.
- Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
- Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
- Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.
💡 Kiến thức cơ bản về Go & ví dụ bạn có thể thử ở trên
1. Khai báo biến và hằng số
Dùng var hoặc := để khai báo biến. Dùng const cho hằng số.
package main
var x int = 10
const Pi = 3.14
func main() {
name := "Alice"
isActive := true
println(x, Pi, name, isActive)
}
2. Cấu trúc điều kiện (if / switch)
Go hỗ trợ các câu lệnh if-else và switch với cú pháp gọn gàng.
x := 2
if x == 1 {
println("Một")
} else if x == 2 {
println("Hai")
} else {
println("Khác")
}
switch x {
case 1:
println("Một")
case 2:
println("Hai")
default:
println("Khác")
}
3. Vòng lặp
Go chỉ có vòng lặp for, nhưng có thể hoạt động như vòng lặp while.
for i := 0; i < 3; i++ {
println(i)
}
n := 3
for n > 0 {
println(n)
n--
}
4. Mảng
Mảng có kích thước cố định. Dùng slice cho danh sách động.
var nums = [3]int{10, 20, 30}
println(nums[1])
5. Thao tác với slice
Dùng slice và các hàm dựng sẵn append, len, copy, cùng cú pháp cắt lát.
fruits := []string{"apple", "banana"}
fruits = append(fruits, "cherry")
fruits = fruits[1:] // slice
println(len(fruits))
for _, fruit := range fruits {
println(fruit)
}
6. Nhập/Xuất trên console
Dùng fmt.Print, fmt.Scan, và fmt.Println.
import "fmt"
var name string
fmt.Print("Nhập tên của bạn: ")
fmt.Scan(&name)
fmt.Println("Xin chào", name)
7. Hàm
Khai báo hàm với func và có thể trả về nhiều giá trị.
func greet(name string) string {
return "Xin chào, " + name
}
message := greet("Alice")
println(message)
8. Map
Map là kho lưu trữ theo cặp khóa-giá trị. Khởi tạo với make().
ages := map[string]int{"Alice": 30}
ages["Bob"] = 25
println(ages["Alice"])
9. Xử lý lỗi
Go dùng nhiều giá trị trả về để truyền lỗi thay vì ngoại lệ.
import "errors"
func fail() error {
return errors.New("đã có sự cố")
}
err := fail()
if err != nil {
println(err.Error())
}
10. I/O tệp
Dùng các package os và io/ioutil để đọc/ghi tệp.
import (
"fmt"
"os"
"io/ioutil"
)
ioutil.WriteFile("file.txt", []byte("Xin chào tệp"), 0644)
data, _ := ioutil.ReadFile("file.txt")
fmt.Println(string(data))
11. Xử lý chuỗi
Dùng package strings cho các thao tác với chuỗi.
import "strings"
text := " Hello World "
println(strings.TrimSpace(text))
println(strings.ToUpper(text))
println(strings.ReplaceAll(text, "Hello", "Hi"))
words := strings.Split(text, " ")
fmt.Println(words)
12. Struct & Đối tượng
Dùng struct để định nghĩa kiểu tùy chỉnh cùng các phương thức.
type Person struct {
Name string
}
func (p Person) Greet() string {
return "Xin chào, tôi là " + p.Name
}
p := Person{Name: "Alice"}
println(p.Greet())
13. Tham chiếu (Con trỏ)
Go hỗ trợ con trỏ với * và &.
x := 10
ptr := &x
*ptr = 20
println(x) // 20