-
經(jīng) 驗(yàn)查看全部
-
/* go語言讀取解析vs工程文件 */ package main import ( "bytes" "encoding/xml" "fmt" "io/ioutil" ) //獲取xml格式的節(jié)點(diǎn)屬性值 func getAttributeValue(attr []xml.Attr, name string) string { for _, a := range attr { if a.Name.Local == name { return a.Value } } return " " } func main() { //讀取文件 content, err := ioutil.ReadFile("vs.csproj") //解析 decoder := xml.NewDecoder(bytes.NewBuffer(content)) var t xml.Token var inItemGroup bool for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { switch token := t.(type) { case xml.StartElement: name := token.Name.Local //fmt.Println(name) //打印出xml的開始節(jié)點(diǎn) if inItemGroup { if name == "ClCompile" { fmt.Println(name) fmt.Println(getAttributeValue(token.Attr, "Include")) } } else { if name == "ItemGroup" { inItemGroup = true } } case xml.EndElement: if inItemGroup { if token.Name.Local == "ItemGroup" { inItemGroup = false } } } } }查看全部
-
/* go語言讀取解析vs工程文件 */ package main import ( "bytes" "encoding/xml" "fmt" "io/ioutil" ) func main() { //讀取文件 content, err := ioutil.ReadFile("vs.csproj") decoder := xml.NewDecoder(bytes.NewBuffer(content)) var t xml.Token var inItemGroup bool for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { switch token := t.(type) { case xml.StartElement: name := token.Name.Local //fmt.Println(name) //打印出xml的開始節(jié)點(diǎn) if inItemGroup { if name == "ClCompile" { fmt.Println(name) } } else { if name == "ItemGroup" { inItemGroup = true } } case xml.EndElement: if inItemGroup { if token.Name.Local == "ItemGroup" { inItemGroup = false } } } } }查看全部
-
/* go語言讀取解析vs工程文件 */ package main import ( "bytes" "encoding/xml" "fmt" "io/ioutil" ) func main() { //讀取文件 content, err := ioutil.ReadFile("vs.csproj") decoder := xml.NewDecoder(bytes.NewBuffer(content)) var t xml.Token var inItemGroup bool for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { switch token := t.(type) { case xml.StartElement: name := token.Name.Local fmt.Println(name) //打印出xml的開始節(jié)點(diǎn) if inItemGroup { if name == "Compile" { fmt.Println(name) } } else { if name == "ItemGroup" { inItemGroup = true } } case xml.EndElement: if inItemGroup { if token.Name.Local == "ItemGroup" { inItemGroup = false } } } } }查看全部
-
package main import ( "flag" "fmt" ) //第一種樣式 func style() { //格式化定義 //flag.String("method","default","提示") 第一個(gè)參數(shù)是名字,第二個(gè)是默認(rèn)值,第三個(gè)值是用法說明 methodPtr := flag.String("method", "default", "提示用法說明") valuePtr := flag.Int("value", -1, "value of sample") //解析 flag.Parse() fmt.Println(*methodPtr, *valuePtr) } //第二種樣式 func style2() { var method string var value int //格式化 flag.StringVar(&method, "method", "default", "method of sample") flag.IntVar(&value, "value", -1, "value of sample") //解析 flag.Parse() fmt.Println(method, value) } func main() { //style() style2() }查看全部
-
package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } 獲取命令行查看全部
-
package main import ( "encoding/xml" "fmt" ) //人物檔案 結(jié)構(gòu)體 type person struct { Name string Age int } func main() { //給結(jié)構(gòu)體賦值 p := person{Name: "霜花似雪", Age: 18} var data []byte var err error //將結(jié)構(gòu)體類型序列化出來,以xml格式展現(xiàn), //MarshalIndent(p,""," ")第二個(gè)參數(shù)是前綴,第三個(gè)參數(shù)是縮進(jìn) if data, err = xml.MarshalIndent(p, "", " "); err != nil { fmt.Println(err) return } fmt.Println(string(data)) p2 := new(person) //反序列化 if err = xml.Unmarshal(data, p2); err != nil { fmt.Println(err) return } fmt.Println(p2) }查看全部
-
package main import ( "encoding/xml" "fmt" ) //人物檔案 結(jié)構(gòu)體 type person struct { Name string Age int } func main() { //給結(jié)構(gòu)體賦值 p := person{Name: "霜花似雪", Age: 18} //將結(jié)構(gòu)體類型序列化出來,以xml格式展現(xiàn) if data, err := xml.Marshal(p); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } fmt.Println("\n") //將結(jié)構(gòu)體類型序列化出來,以xml格式展現(xiàn), //MarshalIndent(p,""," ")第二個(gè)參數(shù)是前綴,第三個(gè)參數(shù)是縮進(jìn) if data, err := xml.MarshalIndent(p, "", " "); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } fmt.Println("\n") //將結(jié)構(gòu)體類型序列化出來,以xml格式展現(xiàn), //MarshalIndent(p,""," ")第二個(gè)參數(shù)是前綴,第三個(gè)參數(shù)是縮進(jìn) if data, err := xml.MarshalIndent(p, "#", " "); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } }查看全部
-
go語言字符串的序列化與反序列化查看全部
-
package main import ( "fmt" "strconv" ) func main() { //go語言中整型與字符串相互轉(zhuǎn)換API //輸入整型數(shù)據(jù)輸出字符串 fmt.Println(strconv.Itoa(10)) //輸入字符串轉(zhuǎn)化為整型 fmt.Println(strconv.Atoi("711")) //字符串解析 //解析為Bool類型 fmt.Println(strconv.ParseBool("false")) //0,f,F,false,FALSE,False fmt.Println(strconv.ParseBool("True")) //1,t,T,true,TRUE,True //解析為float類型,32是位數(shù),是精度 fmt.Println(strconv.ParseFloat("3.14", 32)) //格式化 fmt.Println(strconv.FormatBool(true)) //FormatInt(123, 10),10表示是10進(jìn)制,這個(gè)函數(shù)可以實(shí)現(xiàn)進(jìn)制之間的轉(zhuǎn)化 fmt.Println(strconv.FormatInt(123, 10)) //十進(jìn)制 fmt.Println(strconv.FormatInt(123, 2)) //二進(jìn)制 fmt.Println(strconv.FormatInt(20, 16)) //十六進(jìn)制 }查看全部
-
package main import ( "fmt" "strings" ) func main() { s := "hello world" //判斷字符串s是否在字符串hello中存在 fmt.Println(strings.Contains(s, "hello"), strings.Contains(s, "?")) //輸出字符o在字符串中的索引 fmt.Println(strings.Index(s, "o")) ss := "1#2#3#456" //切割字符串 //采用Split函數(shù)根據(jù)#作為分隔符,分割字符串 splitedStr := strings.Split(ss, "#") fmt.Println(splitedStr) //合并字符串 fmt.Println(strings.Join(splitedStr, "#")) //判斷字符串s中是否包含he開頭的前綴 fmt.Println(strings.HasPrefix(s, "he")) ////判斷字符串s中是否包含ld結(jié)尾的后綴 fmt.Println(strings.HasSuffix(s, "ld")) }查看全部
-
go語音字符串的基本操作查看全部
-
待學(xué)習(xí)查看全部
-
啊事實(shí)上查看全部
-
我的go版本:go version go1.9.2 windows/amd64,運(yùn)行老師的第二個(gè)方法報(bào)錯(cuò),報(bào)錯(cuò)信息如下:flag redefined: method, 解決辦法如下: var method string var value int flagSetObj := new(flag.FlagSet) flagSetObj.StringVar(&method, "method", "default", "method os sample") flagSetObj.IntVar(&value, "value", -1, "value of sample") var paramArr = []string{"method", "value"} flagSetObj.Parse(paramArr) //這里設(shè)置的有問題method 獲取不到值,應(yīng)該是flag.FlagSet的原因 fmt.Println("將用戶輸入的參數(shù)直接設(shè)置到我自己的變量里面來:", method, value) //fmt.Println(method, value) 解決的還是不太完美,用戶輸入的值還是打印不出來,不過已經(jīng)不報(bào)錯(cuò)了,值我在研究研究查看全部
舉報(bào)
0/150
提交
取消