Switch 및 ForEach가 포함된 Golang 템플릿
이 코드 데모는 Go에서 템플릿을 활용하여 bash 스크립트를 생성하는 데 중점을 둡니다. 스크립트에는 종속성을 통한 ForEach 반복, 해당 유형 식별 및 해당 에코 메시지 출력이 필요합니다. 각 종속성의 유형을 처리하기 위해 스위치 문이 구현됩니다.
package main import ( "log" "text/template" "gopkg.in/yaml.v2" "os" ) type File struct { TypeVersion string `yaml:"_type-version"` Dependency []Dependency } type Dependency struct { Name string Type string CWD string Install []Install } type Install map[string]string var data = ` _type-version: "1.0.0" dependency: - name: ui type: runner cwd: /ui install: - name: api - name: ui2 type: runner2 cwd: /ui2 install: - name: api2 ` func main() { f := File{} err := yaml.Unmarshal([]byte(data), &f) if err != nil { log.Fatalf("error: %v", err) } const t = ` #!/bin/bash {{range .Dependency}} echo "type is {{.Type}}" echo "cwd is {{.CWD}}" {{range .Install}} echo "install {{.name}}" {{end}} {{end}} ` tt := template.Must(template.New("").Parse(t)) err = tt.Execute(os.Stdout, f) if err != nil { log.Println("executing template:", err) } }
제공된 데이터는 파일 구조로 언마샬링된 다음 템플릿 실행 준비가 됩니다. 이 수정된 코드는 다음을 사용하여 스크립트를 생성합니다.
#!/bin/bash echo "type is runner" echo "cwd is /ui" echo "install api" echo "type is runner2" echo "cwd is /ui2" echo "install api2"
위 내용은 스위치 및 ForEach가 포함된 Go 템플릿을 사용하여 Bash 스크립트를 생성하여 종속성을 반복하고 유형에 따라 해당 에코 메시지를 출력하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!