Osc*_*Ryz 1 vector undefined go
从这个问题
我试图创建一个新的向量,但编译器说它是未定义的:
$ 6g -V
6g version release.r60.3 9516
$ cat > vectest.go <<.
> package main
>
> import vector "container/vector"
> import "fmt"
>
> func main() {
> vec := vector.New(0);
> buf := make([]byte,10);
> vec.Push(buf);
>
> for i := 0; i < vec.Len(); i++ {
> el := vec.At(i).([]byte);
> fmt.Print(el,"\n");
> }
> }
> .
$ 6g vectest.go
vectest.go:7: undefined: vector.New
Run Code Online (Sandbox Code Playgroud)
可能有什么问题?
容器/矢量包已被删除.切片更好. SliceTricks:如何用切片做矢量事件.
我修改了你的convertToLCD代码以获得更好的性能:5,745 ns/op与19,003 ns/op.
package main
import (
"fmt"
"strconv"
)
const (
lcdNumerals = `
_ _ _ _ _ _ _ _
| | | _| _||_||_ |_ ||_||_|
|_| ||_ _| | _||_| ||_| _|
`
lcdWidth = 3
lcdHeight = 3
lcdLineLen = (len(lcdNumerals) - 1) / lcdWidth
)
func convertToLCD(n int) string {
digits := strconv.Itoa(n)
displayLineLen := len(digits)*lcdWidth + 1
display := make([]byte, displayLineLen*lcdHeight)
for i, digit := range digits {
iPos := i * lcdWidth
digitPos := int(digit-'0') * lcdWidth
for line := 0; line < lcdHeight; line++ {
numeralPos := 1 + lcdLineLen*line + digitPos
numeralLine := lcdNumerals[numeralPos : numeralPos+lcdWidth]
displayPos := displayLineLen*line + iPos
displayLine := display[displayPos : displayPos+lcdWidth]
copy(displayLine, string(numeralLine))
if i == len(digits)-1 {
display[displayLineLen*(line+1)-1] = '\n'
}
}
}
return string(display)
}
func main() {
fmt.Printf("%s\n", convertToLCD(1234567890))
}
Run Code Online (Sandbox Code Playgroud)
输出:
_ _ _ _ _ _ _ _
| _| _||_||_ |_ ||_||_|| |
||_ _| | _||_| ||_| _||_|
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |