zoukankan      html  css  js  c++  java
  • go语言学习(一):数组/切片

    学习区块链之后,发现还要学习加密,接触到的视频是:Go的crypto包,所以开始接触Go。因为和solidity有些相似,但是比solidity简单一些,就开始放松的心态去学习。
    每天翻着go菜鸟教程,感觉简单的一批,可是当自己真要写代码的时候,就有点闷了. --凡是还是得脚踏实地才行!
    package main
    
    import "fmt"
    
    func main() {
        //var type_name []type
        /*
            切片:[]无参数
            数组:只能修改值,无法改变长度,无法添加新元素
                固定长度 [n]  [...] //根据元素的个数来设置数组的大小
        */
        var e []byte
        //var e []byte = make([]byte,len)
        //e := make([]byte,len)
        //var a = [5]byte //type [5]byte is not an expression,= []byte{}一定要加大括号
        var a [6]byte
        var b = [...]byte{0}
        var f byte = b[0]
        //var c [...]byte //use of [...] array outside of array literal
        //b = append(b, byte(1)) //first argument to append must be slice; have [0]byte
        fmt.Println(a, b, e, f)
        padding([]byte{1, 2, 3, 4, 4, 4, 4, 5}, 3)
    }
    
    //简单DES加密初识
    // DES1.go
    package main
    
    import (
        "bytes"
        "fmt"
    )
    
    func padding(src []byte, blockSize int) []byte {
        //1.截取加密代码 段数
        fmt.Println("depadding", src)
        padding := blockSize - len(src)%blockSize
        //2.无余数
        if padding == 0 {
            padText := bytes.Repeat([]byte{byte(blockSize)}, blockSize)
            src = append(src, padText...)
        } else { //else 一定直接要添加到该右括号的后面,不能令起一行
            //3.有余数
            padText := bytes.Repeat([]byte{byte(padding)}, padding)
            src = append(src, padText...)
        }
        //4.添加余数
        //src = append(src, padText...)
        return src
    
    }
    func Depadding(src []byte) []byte {
        //1.取出最后一个元素
        lasteum := int(src[len(src)-1])
        //2.删除和最后一个元素相等长的字节
        newText := src[:len(src)-lasteum]
        return newText
    }
    
    func main() {
        depadding := padding([]byte{1, 2, 3, 4, 5, 1, 2, 3}, 5)
        enpadding := Depadding(depadding)
        fmt.Println("enpadding", enpadding)
    }
    
    /*输出
    depadding [1 2 3 4 5 1 2 3]
    enpadding [1 2 3 4 5 1 2 3]
    */
  • 相关阅读:
    Angular2新人常犯的5个错误
    好爱情,坏爱情
    关于css中a标签的样式
    移动端rem布局实践
    我们这一代人的困惑
    原创ui.router源码解析
    Web客户端数据存储学习笔记——Cookie
    喝汤了——如何用一年时间获得十年的能力和经验
    Petya勒索木马
    推荐几个精致的web UI框架
  • 原文地址:https://www.cnblogs.com/eilinge/p/10134713.html
Copyright © 2011-2022 走看看