GoLang练习实例100之001----切片转换为Map

package main

import "fmt"

//切片转换为Map
func slice_To_Map(s_key, s_value []string) (map[string]string) {
	mapObj := map[string]string{}
	for s_key_index := range s_key {
			mapObj[s_key[s_key_index]] = s_value[s_key_index]
	}
	return mapObj
}

func main() {
	s_key := []string{"a", "b", "c", "d", "e"}
	s_value := []string{"1", "2", "3", "4", "5"}
	r_map := slice_To_Map(s_key, s_value)

	for key, value := range r_map{
		fmt.Printf("Key: %s,Value: %s\n", key,value)
	}
}

 

转载于:https://my.oschina.net/zhangzhe/blog/1647528

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package main import ( "fmt" "strings" ) var base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" func baseToBinary(b byte) string { idx := strings.IndexByte(base, b) if idx == -1 { return "" } return fmt.Sprintf("%06b", idx) } func binaryToUTF8(b string) string { utf8 := "" for len(b) > 0 { r, size := utf8Decode(b) utf8 += string(r) b = b[size:] } return utf8 } func utf8Decode(b string) (r rune, size int) { if len(b) == 0 { return 0, 0 } firstByte := b[0] if firstByte < 0x80 { return rune(firstByte), 1 } masks := []byte{0x7f, 0x3f, 0x1f, 0x0f} mask := masks[(firstByte>>3)&0x03] r = rune(firstByte & mask) size = 2 if firstByte&0xe0 == 0xc0 { mask = masks[0] r |= rune((b[1] & mask) << 6) } else if firstByte&0xf0 == 0xe0 { mask = masks[1] r |= rune((b[1] & mask) << 6) r |= rune(b[2] & 0x3f) size = 3 } else if firstByte&0xf8 == 0xf0 { mask = masks[2] r |= rune((b[1] & mask) << 6) r |= rune((b[2] & 0x3f) << 6) r |= rune(b[3] & 0x3f) size = 4 } return r, size } func baseToUTF8(s string) (string, error) { if len(s)%4 != 0 { return "", fmt.Errorf("invalid base string") } var binary string for i := 0; i < len(s); i += 4 { block := s[i : i+4] binary += baseToBinary(block[0]) binary += baseToBinary(block[1]) binary += baseToBinary(block[2]) binary += baseToBinary(block[3]) } return binaryToUTF8(binary), nil } func main() { baseString := "SGVsbG8gV29ybGQh" utf8String, err := baseToUTF8(baseString) if err != nil { fmt.Println(err) return } fmt.Println(utf8String) // Output: "Hello World!" }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值