คอมไพเลอร์ Golang CLI ออนไลน์
รันและทดสอบ Go code ผ่าน CLI ออนไลน์ ทำงานบนเบราว์เซอร์ ไม่มีการตั้งค่า เหมาะสำหรับการเรียนรู้และดีบักขั้นสูง
👨💻 เรียนรู้ Go แบบลงมือทำจริง
Loading...
🐹 เกี่ยวกับตัวรัน Go ออนไลน์นี้
CodeUtility Go Executor ให้คุณเขียนและรันโค้ด Go ได้โดยตรงในเบราว์เซอร์ - ไม่ต้องติดตั้ง ตั้งค่า หรือมีสภาพแวดล้อมโลคัลใดๆ ใช้งานบนแซนด์บ็อกซ์ที่ปลอดภัยและรองรับ คอมไพเลอร์ Go เวอร์ชันจริง 1.19, 1.20 และ 1.21
เครื่องมือนี้คอมไพล์และรันโปรแกรม Go จริงบนคลาวด์ ให้สภาพแวดล้อม Go ที่แท้จริง คุณสามารถทดสอบโค้ดสั้นๆ ทดลองกับแพ็กเกจ และสำรวจความสามารถด้าน concurrency อันทรงพลังของ Go ด้วย goroutine และ channel
เหมาะอย่างยิ่งสำหรับการเรียนรู้และฝึกแนวคิดหลักของ Go เช่น ตัวแปร ฟังก์ชัน สตรักต์ สไลซ์ แมป อินเทอร์เฟซ และการจัดการข้อผิดพลาด - ทั้งหมดนี้โดยไม่ต้องติดตั้งเครื่องมือใดๆ บนเครื่อง
ไม่ว่าคุณจะเริ่มต้นกับ Go เป็นครั้งแรก กำลังทดสอบตรรกะแบ็กเอนด์ หรือเรียนรู้การทำงานของ concurrency CodeUtility Go Executor มอบวิธีการรันโค้ด Go ที่เรียบง่าย รวดเร็ว และทำงานบนเบราว์เซอร์ได้ทันที
⚙️ วิธีใช้งานเครื่องมือนี้
- 1. เลือกเวอร์ชัน Go (1.19, 1.20 หรือ 1.21) จากดรอปดาวน์ด้านบนของตัวแก้ไข
- 2. พิมพ์หรือวางโค้ด Go ของคุณลงในพื้นที่แก้ไข
- 3. คลิก รัน เพื่อคอมไพล์และรันโปรแกรมของคุณ - เอาต์พุตจะแสดงในคอนโซลด้านล่าง
- 4. ระหว่างที่กำลังรัน จะมีปุ่ม หยุด ปรากฏ - คลิกเพื่อหยุดการทำงานก่อนเวลา
- 5. ใช้ แก้โค้ด เพื่อแก้ไขปัญหาการจัดรูปแบบหรือไวยากรณ์เล็กน้อยโดยอัตโนมัติ
- 6. หลังจากแก้แล้ว จะมีปุ่ม การแก้ไข ปรากฏ - คลิกเพื่อดูการแก้ไขล่าสุด
- 7. ใช้ปุ่ม อัปโหลด เพื่อนำเข้าโค้ดจากไฟล์ในเครื่อง หรือปุ่ม ดาวน์โหลด เพื่อบันทึกโค้ดปัจจุบันจากตัวแก้ไข
- 8. การรันแต่ละครั้งทำงานได้สูงสุด 20 วินาที ก่อนจะยุติโดยอัตโนมัติ
🧠 เคล็ดลับ: สภาพแวดล้อมนี้รันโค้ด Go จริงอย่างปลอดภัยในเบราว์เซอร์ของคุณ - ไม่ต้องล็อกอินหรือเซ็ตอัปเครื่องโลคัล
💡 พื้นฐาน Go และตัวอย่างที่คุณลองได้ด้านบน
1. การประกาศตัวแปรและค่าคงที่
ใช้ var หรือ := เพื่อประกาศตัวแปร ใช้ const สำหรับค่าคงที่
package main
var x int = 10
const Pi = 3.14
func main() {
name := "Alice"
isActive := true
println(x, Pi, name, isActive)
}
2. คำสั่งเงื่อนไข (if / switch)
Go รองรับคำสั่ง if-else และ switch ด้วยไวยากรณ์ที่กระชับ
x := 2
if x == 1 {
println("หนึ่ง")
} else if x == 2 {
println("สอง")
} else {
println("อื่น")
}
switch x {
case 1:
println("หนึ่ง")
case 2:
println("สอง")
default:
println("อื่น")
}
3. ลูป
Go มีลูปแบบเดียวคือ for แต่สามารถใช้แทนลูป while ได้
for i := 0; i < 3; i++ {
println(i)
}
n := 3
for n > 0 {
println(n)
n--
}
4. อาร์เรย์
อาร์เรย์มีขนาดตายตัว ใช้สไลซ์สำหรับรายการที่ปรับขนาดได้
var nums = [3]int{10, 20, 30}
println(nums[1])
5. การจัดการสไลซ์
ใช้สไลซ์และฟังก์ชันในตัว append, len, copy และไวยากรณ์การตัดสไลซ์
fruits := []string{"apple", "banana"}
fruits = append(fruits, "cherry")
fruits = fruits[1:] // สไลซ์
println(len(fruits))
for _, fruit := range fruits {
println(fruit)
}
6. การรับส่งข้อมูลทางคอนโซล
ใช้ fmt.Print, fmt.Scan และ fmt.Println
import "fmt"
var name string
fmt.Print("กรุณากรอกชื่อของคุณ: ")
fmt.Scan(&name)
fmt.Println("สวัสดี", name)
7. ฟังก์ชัน
ประกาศฟังก์ชันด้วย func และสามารถคืนค่าหลายค่าได้
func greet(name string) string {
return "สวัสดี, " + name
}
message := greet("Alice")
println(message)
8. แมป
แมปเป็นโครงสร้างเก็บคู่คีย์-ค่า ประกาศด้วย make().
ages := map[string]int{"Alice": 30}
ages["Bob"] = 25
println(ages["Alice"])
9. การจัดการข้อผิดพลาด
Go ใช้การคืนค่าหลายค่าเพื่อส่งข้อผิดพลาด แทนการใช้ข้อยกเว้น
import "errors"
func fail() error {
return errors.New("เกิดข้อผิดพลาดบางอย่าง")
}
err := fail()
if err != nil {
println(err.Error())
}
10. การอ่านเขียนไฟล์
ใช้แพ็กเกจ os และ io/ioutil เพื่ออ่าน/เขียนไฟล์
import (
"fmt"
"os"
"io/ioutil"
)
ioutil.WriteFile("file.txt", []byte("Hello File"), 0644)
data, _ := ioutil.ReadFile("file.txt")
fmt.Println(string(data))
11. การจัดการสตริง
ใช้แพ็กเกจ strings สำหรับการจัดการสตริง
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. สตรักต์และอ็อบเจ็กต์
ใช้สตรักต์เพื่อกำหนดชนิดข้อมูลแบบกำหนดเองพร้อมเมธอด
type Person struct {
Name string
}
func (p Person) Greet() string {
return "สวัสดี ฉันชื่อ " + p.Name
}
p := Person{Name: "Alice"}
println(p.Greet())
13. การอ้างอิง (พอยน์เตอร์)
Go รองรับพอยน์เตอร์โดยใช้ * และ &.
x := 10
ptr := &x
*ptr = 20
println(x) // 20