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]
*/
go语言学习(一):数组/切片的更多相关文章
- GO 语言学习笔记--数组切片篇
1.对于make 数组切片,长度和容量需要理解清楚: 容量表示底层数组的大小,长度是你可以使用的大小: 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否 ...
- go语言中的数组切片:特立独行的可变数组
go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...
- C语言学习004:数组与指针
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的
- C语言学习笔记--数组指针和指针数组
C 语言中的数组有自己特定的类型,数组的类型由元素类型和数组大小共同决定.(如 int array[5]类型为 int[5]) 1.定义数组类型 C 语言中通过 typedef 为数组类型重命名:ty ...
- go语言学习--指针数组和数组指针
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...
- C语言学习笔记--数组参数和指针参数
1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的. ...
- c语言学习笔记 —— 数组
1. 数组的内存分配原理. 数组定义 int a[3] = {1,3,11}; 如下写法是错误的: int number; int a[number] = {1,7,9}; 原因是:没有定长的数组初 ...
- c语言学习笔记.数组.
数组: 可以存储一个固定大小的相同类型元素的顺序集合,比如int类型的数组.float类型的数组,里面存放的数据称为“元素”. 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址 ...
- 【原创】go语言学习(七)数组
目录 数组定义 二维数组 数组拷贝.传参 数组定义 1. 数组是同一类型的元素集合. var a [3]int //定义一个数组 //Go中数组下标从0开始,因此⻓长度为n的数组下标范围:[0,n-1 ...
随机推荐
- qt 使用qtxlsx 读写excel
https://github.com/dbzhang800/QtXlsxWriter 下载qtxlsx地址 QtXlsx is a library that can read and write Ex ...
- 微信证书 javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
这几天在做微信退款接口,按照api写完之后,在本地测试了下没有问题,于是交给测试让他们在测试环境开测.他们说退款没有成功,感觉去查日志,发现后台报了 javax.net.ssl.SSLExceptio ...
- apache2 tomat https 变成http的解决方案
1.apache2 设置 RequestHeader set X-Forwarded-Proto "https" 2.springboot 设置 server.tomcat.p ...
- js前台检测上传图片大小的总结
最近一直在做上传图片的前端检测,不通过后台就完成这个动作.但实际是,实际效果差强人意. html5的fileApi出来后,对文件的处理才变得方便了些,对它的简单介绍可以看我的前面的博客.现在支持的浏览 ...
- SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)
本文是参考官方文档的实现,官方wiki:https://wiki.svnkit.com/Committing_To_A_Repository 本文核心使用的是ISVNEditor这个接口直接对Re ...
- windows下安装配置RabbitMQ
安装部署 1.当前环境以及参考资料出处 部署环境:windows server 2008 r2 enterprise 官方安装部署文档:http://www.rabbitmq.com/install- ...
- C#中的多线程 - 并行编程 z
原文:http://www.albahari.com/threading/part5.aspx 专题:C#中的多线程 1并行编程Permalink 在这一部分,我们讨论 Framework 4.0 加 ...
- ARC中用代码检测一个对象有没有释放掉
ARC中用代码检测一个对象有没有释放掉 你试过在ARC中用代码检测对象有没有释放掉这种事情呢?即使你想过肯定也不知道怎么去实现,因为,这里会用到一个你基本上没怎么接触过的类:NSHashTable. ...
- laravel5.5 自定义验证规则——手机验证RULE
相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat your ...
- msvcr100.dll丢失原因及解决方法
msvcr100.dll为Visual Studio 2010的一个动态链接库,如果某程序是用它开发出来的,那么该程序的运行就有可能需要此动态链接库.有些程序直接将其打包到了安装目录,并注册,就不会出 ...