Saat ini saya memiliki satu file dalam paket utama saya yang disebut main.go
. Bagaimana cara membagi konten main.go
menjadi beberapa file tanpa membuat paket terpisah karena kode tidak dapat digunakan kembali.
Saya ingin struktur direktori seperti ini:
$ ls foo
main.go
bar.go
bar.go
package main
import "fmt"
func Bar() {
fmt.Println("Bar")
}
Lalu masuk main.go
package main
func main() {
Bar()
}
Tapi go run main.go
beri saya:
# command-line-arguments
./main.go:4:2: undefined: Bar
*_test.go
di folder Anda. Maka Anda perlu (1)shopt -s ext glob
dan (2)go run !(*_test).go
.go run ./cmd/myCmd/...
dan itu berhasil untuk saya. Mungkin ini cara yang benar ketika ada_test.go
file?go run ../your_folder
dari dalam folder yang berfungsi bekerja untuk sayago run .
Pembaruan Agustus 2018, dengan Go 1.11 , bagian "Jalankan" menyatakan:
Jawaban asli Januari 2015
Seperti disebutkan dalam " Bagaimana cara mengkompilasi program Go yang terdiri dari beberapa file? ",
go run
Mengharapkan daftar file, karena "mengkompilasi dan menjalankanmain
paket yang terdiri dari file Go source yang bernama".Jadi Anda tentu dapat membagi
main
paket Anda menjadi beberapa file dengango run
.Itu berbeda dari
go build/go install
yang diharapkan nama paket (dan tidak pergi nama file).Sederhana
go build
akan menghasilkan executable bernama setelah folder induk.Perhatikan bahwa, sebagai diilustrasikan oleh utas ini , a
go run *.go
tidak akan berfungsi dalam sesi Windows CMD, karena shell tidak melakukan ekspansi wildcard .sumber
run
menggunakan command prompt Windows?Seperti yang disebutkan, Anda bisa mengatakan
go run *.go
tetapi untuk Windows Anda bisa daftar file skrip (karena * .go tidak akan bekerja) -go run main.go other.go third.go
sumber
go run .
Menurut pendapat saya, jawaban terbaik untuk pertanyaan ini tersembunyi di komentar untuk jawaban teratas.
Jalankan saja ini:
Ini akan menjalankan semua file dalam paket utama, tetapi tidak akan memberikan pesan kesalahan seperti
Kudos to @BarthesSimpson
sumber
Untuk Windows, instal Cygwin dan gunakan sebagai ganti command prompt. "Go run * .go" akan berfungsi kemudian.
sumber
cmd.exe
Jika Anda mencoba menjalankan beberapa file di localhost menggunakan gorilla mux in go sesuai versi terbaru (1.11). Coba gunakan salah satu dari 2 perintah berikut.
Pastikan bahwa Anda berada di folder sumber yaitu pergi / src / FolderName sebelum menjalankan perintah di Terminal.
sumber