代码如下:
-module(map_demo).
-export([count_characters/1]).
count_characters(Str) ->
count_characters(Str, #{}).
count_characters([H|T], #{ H => N } = X) ->
count_characters(T, X#{ H := N+1 });
count_characters([H|T], X) ->
count_characters(T, X#{ H => 1});
count_characters([], X) ->
X.
Run Code Online (Sandbox Code Playgroud)
在Erlang shell中编译代码时,它报告了以下错误:
1> c(map_demo).
map_demo.erl:7: illegal pattern
map_demo.erl:8: variable 'N' is unbound
map_demo.erl:10: illegal use of variable 'H' in map
map_demo.erl:7: Warning: variable 'H' is unused
error
Run Code Online (Sandbox Code Playgroud)
我是Erlang的新手,我自己找不到任何错误.怎么纠正呢?
正如代码所言,我无法在 Go 中使用冒号解组 xml 元素。
https://play.golang.org/p/zMm5IQSfS01
package main
import (
"fmt"
"encoding/xml"
)
type Obj struct {
XMLName xml.Name `xml:"book"`
AbcName string `xml:"abc:name"`
}
func main() {
a := []byte(`<book><abc:name>text</abc:name></book>`)
obj := &Obj{}
if err := xml.Unmarshal(a, obj); err != nil {
panic(err)
}
fmt.Printf("%#v\n", obj)
}
Run Code Online (Sandbox Code Playgroud)
代码输出:
&main.Obj{XMLName:xml.Name{Space:"", Local:"book"}, AbcName:""}
Run Code Online (Sandbox Code Playgroud)
是否可以在 Golang 中使用冒号解组 xml 元素?如果是,怎么办?