Golang系列(四)之面向接口编程
1. 接口[多态] 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。 简而言之,就是允许将子类类型的指针赋值给父类类型的指针。 即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。不修改程序代码就可以改变程序运行…
1. 接口[多态] 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。 简而言之,就是允许将子类类型的指针赋值给父类类型的指针。 即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。不修改程序代码就可以改变程序运行…
0. 摘要 在项目开发过程中,当操作一些用户的隐私信息,诸如密码,帐户密钥等数据时,往往需要加密后可以在网上传输.这时,需要一些高效地,简单易用的加密算法加密数据,然后把加密后的数据存入数据库或进行其他操作;当需要读取数据时,把加密后的数据取出来,再通过算法解密. 1. 关于加密解密 当前我们项目中常用的加解密的方式无非三种. 对称加密, 加解密都使用的是同一个密钥, 其中的代表就是AES,DES…
-N参数代表禁止优化, -l参数代表禁止内联, go在编译目标程序的时候会嵌入运行时(runtime)的二进制, 禁止优化和内联可以让运行时(runtime)中的函数变得更容易调试. 版权声明:本文为weixin_37852875原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/weixin_37852875/…
匿名函数是不具名的函数,可以在不定义函数名的情况下直接使用,通常用于函数内部的局部作用域中。而普通函数则是通过定义函数名,在任何地方都可以直接调用的函数。 在 Go 中,匿名函数与普通函数有以下区别: 匿名函数可以在函数内部定义,普通函数只能在包级别定义; 匿名函数可以在定义后立即调用,也可以赋值给一个变量后再调用,而普通函数只能通过函数名调用; 匿名函数可以 访问并修改外部变量,即闭包特性 ,而…
[Golang]力扣Leetcode—初级算法—数学—计数质数(厄拉多塞筛法) 题目 :统计所有小于非负整数 n 的质数的数量。 链接 : 力扣Leetcode—初级算法—数学—计数质数 . 示例1 : 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例2 : 输入:n = 0 输出:0 示例3 : 输入:n = 1 输出:0 标签 :数…
写的第一篇Blog,只是想方便的记录一下以后的一些信息,写的不好的地方,请批评指正。 刚刚步入linux之路,逐渐熟悉使用ubuntu/ centos这样的系统,配置vim,使它满足自己的日常开发需求,是必不可少的环节。 Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件,这里我同样使用vim-go作为核心和基础进行环境搭建的。vim-go利用开源Vim插件管理器安装, gm…
最近在写练手项目的时候,需求一个功能: 实现通过数组或者切片的索引删除 任意类型数组 或者切片的内容,并且返回删除后的结果集,找了半天发现 官方package中没有Java.util.Arrays 这样的工具类的实现,只好自己写一个 ,由于golang中没有c++ 、java中泛型的概念,所以只能将工具方法通过 反射类实现一下,具体代码如下: package tools import ( "er…
Golang中的Redis 基本介绍 Redis的基本使用 Redis数据类型和CRUD Redis五大数据类型 string使用细节和注意事项 hash使用细节和注意事项 list使用细节和注意事项 set使用细节和注意事项 Go链接到Redis Go操作Redis(string类型) Go操作Redis(hash类型) Redis连接池 基本介绍 1.Redis是NoSQL数据库,不是传统的关…
下载 Go 压缩包 以 root 或者其他 sudo 用户身份运行下面的命令,下载并且解压 Go 二进制文件到/usr/local目录: wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local 调整环境变量 通过将 Go 目录添加到$PATH环境变量,系统将会知道在…
HttpGo工具(golang封装httpclient) 封装httpclient简化开发 依赖库 import . "github.com/NoBugBoy/httpgo/http" 使用方法 req := &Req{} body, err := req.Url("https://www.baidu.com"). Method(http.MethodGet). //请求方式 Header…