Go语言基础语法面试题
Go有异常类型吗Go没有异常类型,只有错误类型(Error),通常使用返回值来表示异常状态
1234f, err := os.Open("test.txt")if err != nil { log.Fatal(err)}
什么是协程GoroutineGoroutine 是与其他函数或方法同时运行的函数或方法。 Goroutines 可以被认为是轻量级的线程。 与线程相比,创建 Goroutine 的开销很小。 Go应用程序同时运行数千个 Goroutine 是非常常见的做法。
如何高效地拼接字符串在Go中,字符串是只读的,也就意味着每次修改操作都会创建一个新的字符串。如果需要拼接多次,应该使用string.Builder,最小化内存拷贝次数。
12345var str strings.Builderfor i := 0; i < 1000; i++ { str.WriteString("a")}fmt.Println(str.String())
什么是rune类型ASCII 码只需要 ...
Linux打包和压缩
tar命令做打包操作该命令的基本格式为:
1[root@localhost ~]#tar [选项] 源文件或目录
选项
含义
-c
将多个文件或目录进行打包。
-A
追加 tar 文件到归档文件。
-f 包名
指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
-v
显示打包文件过程;
tar命令做解打包操作该命令的基本格式为:
1[root@localhost ~]#tar [选项] 压缩包
选项
含义
-x
对 tar 包做解打包操作。
-f
指定要解压的 tar 包的包名。
-t
只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。
-C 目录
指定解打包位置。
-v
显示解打包的具体过程。
其实解打包和打包相比,只是把打包选项 “-cvf” 更换为 “-xvf”。我们来试试:
zip压缩文件或目录zip命令的基本格式:
1[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表
选项
含义
-r
递归压缩目录,及将制定目录下的所 ...
Linux文件系统
Linux文件目录结构
/bin
bin是Binaries的缩写,这个目录存放着最经常使用的命令。
/boot
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
...
智能合约
智能合约模型本质上是一个运行在区块链上的分布式应用。
区块链:分布式账本区块(Block)
Previous Hash, Data, Hash
账户(Account)
Address, Balance
以太坊账户模型EOA
拥有非对称密钥对的用户实体。
COA
合约字节码(Code Hash)
持久化存储(Storage Root)
交易的基本格式Hash
交易标识
From
发送交易的账户,需要用私钥为这笔交易签名
to
目的账户
Value
以太币数量
Calldata
字节流格式的输入
Gas
支付给矿工的手续费
GasPrice
Gas的单位价格,以Ether标识
Logs
被触发的事件
执行&调试智能合约
Redis进阶
Redis持久化RDB(Redis Database)
触发机制
save规则满足的情况下,会自动触发rdb规则
执行flushall命令,也会触发rdb规则
退出redis,也会产生rdb文件
恢复rdb文件
将rdb文件存放在redis的启动目录
查看需要存在的位置
AOF(Append Only File)以日志的形式记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件而不可以改写文件,Redis启动之初会读取该文件重新构建数据.
Redis发布订阅Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息。
订阅端
1234567891011121314127.0.0.1:6379> pingPONG127.0.0.1:6379> SUBSCRIBE dingdada #订阅名字为 dingdada 的频道Reading messages... (press Ctrl-C to quit)1) "subscribe"2) "din ...