Guest User

Untitled

a guest
Mar 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. s := string(byteArray[:n])
  2.  
  3. n := bytes.Index(byteArray, []byte{0})
  4.  
  5. n := bytes.IndexByte(byteArray, 0)
  6.  
  7. s := string(byteArray[:])
  8.  
  9. str := fmt.Sprintf("%s", byteArray)
  10.  
  11. package main
  12.  
  13. import "fmt"
  14.  
  15. func CToGoString(c []byte) string {
  16. n := -1
  17. for i, b := range c {
  18. if b == 0 {
  19. break
  20. }
  21. n = i
  22. }
  23. return string(c[:n+1])
  24. }
  25.  
  26. func main() {
  27. c := [100]byte{'a', 'b', 'c'}
  28. fmt.Println("C: ", len(c), c[:4])
  29. g := CToGoString(c[:])
  30. fmt.Println("Go:", len(g), g)
  31. }
  32.  
  33. C: 100 [97 98 99 0]
  34. Go: 3 abc
  35.  
  36. package main
  37.  
  38. import "fmt"
  39.  
  40. func FirstZero(b []byte) int {
  41. min, max := 0, len(b)
  42. for {
  43. if min + 1 == max { return max }
  44. mid := (min + max) / 2
  45. if b[mid] == '00' {
  46. max = mid
  47. } else {
  48. min = mid
  49. }
  50. }
  51. return len(b)
  52. }
  53. func main() {
  54. b := []byte{1, 2, 3, 0, 0, 0}
  55. fmt.Println(FirstZero(b))
  56. }
  57.  
  58. package main
  59.  
  60. import (
  61. "fmt"
  62. "reflect"
  63. "unsafe"
  64. )
  65.  
  66. func BytesToString(b []byte) string {
  67. bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
  68. sh := reflect.StringHeader{bh.Data, bh.Len}
  69. return *(*string)(unsafe.Pointer(&sh))
  70. }
  71.  
  72. func StringToBytes(s string) []byte {
  73. sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
  74. bh := reflect.SliceHeader{sh.Data, sh.Len, 0}
  75. return *(*[]byte)(unsafe.Pointer(&bh))
  76. }
  77.  
  78. func main() {
  79. b := []byte{'b', 'y', 't', 'e'}
  80. s := BytesToString(b)
  81. fmt.Println(s)
  82. b = StringToBytes(s)
  83. fmt.Println(string(b))
  84. }
  85.  
  86. bytes.NewBuffer(byteArray).String()
  87.  
  88. buf := make([]byte, 100)
  89. n, err := myReader.Read(buf)
  90. if n == 0 && err != nil {
  91. log.Fatal(err)
  92. }
  93.  
  94. consume(buf[:n]) // consume will see exact (not padded) slice of read data
  95.  
  96. func CToGoString(c []byte, acc string) string {
  97.  
  98. if len(c) == 0 {
  99. return acc
  100. } else {
  101. head := c[0]
  102. tail := c[1:]
  103. return CToGoString(tail, acc + fmt.Sprintf("%c", head))
  104. }
  105. }
  106.  
  107. func main() {
  108. b := []byte{some char bytes}
  109. fmt.Println(CToGoString(b, ""))
  110. }
Add Comment
Please, Sign In to add comment