CodeBlanks Logo Icon CodeBlanks

GOOS=js

GOOS=js GOARCH=wasm ile derlemeyi öğrenirsin.

GOOS ve GOARCH

Go'da çapraz derleme iki ortam değişkeniyle yapılır; ek araç zinciri gerekmez (cgo kapalıyken):

GOOS=linux   GOARCH=arm64 go build   # Raspberry Pi, AWS Graviton
GOOS=windows GOARCH=amd64 go build   # .exe
GOOS=darwin  GOARCH=arm64 go build   # Apple Silicon
go tool dist list                    # tüm hedefler

Dosya adı son ekleri (_windows.go, _wasm.go) ve //go:build satırları hedefe özel kod seçer.

Hedefe göre davranış

Aynı API'yi farklı hedeflerde farklı uygulamak için iki dosya ve ortak bir fonksiyon adı kullanılır:

// depo_js.go
//go:build js
func kaydet(k, v string) { localStorage.Set(k, v) }

// depo_other.go
//go:build !js
func kaydet(k, v string) { os.WriteFile(k, []byte(v), 0o644) }

Çalışma anında hedefi sorgulamak için runtime.GOOS da kullanılabilir.

Uygulama Hedefe göre metin

platform() string yaz: runtime.GOOS == "js" ise "tarayıcı", değilse "yerel" döndürsün. Sonucu yazdır.

Başlangıç kodu

main.go
package main

import (
    "fmt"
    "runtime"
)

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import (
    "fmt"
    "runtime"
)

func platform() string {
    if runtime.GOOS == "js" {
        return "tarayıcı"
    }
    return "yerel"
}

func main() {
    fmt.Println(platform())
}

Beklenen çıktı

yerel

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>dosya_js.go</code> adlı dosya ne zaman derlenir?

  • Yalnızca testlerde
  • Hiçbir zaman
  • Yalnızca GOOS=js iken Doğru cevap
  • Her zaman

Açıklama: _GOOS ve _GOARCH son ekleri örtük derleme kısıtıdır; dosya yalnızca eşleşen hedefte derlemeye girer.

2 Hedefleri listele

Soru
go tool dist ____
Cevap
go tool dist list

Açıklama: go tool dist list desteklenen tüm GOOS/GOARCH çiftlerini yazdırır.

3 Hedef çifti

Kavram Anlamı
linux/arm64 Raspberry Pi, Graviton
windows/amd64 .exe dosyası
js/wasm Tarayıcı
darwin/arm64 Apple Silicon

Uzman bölümündeki tüm dersler