golang 各种数据类型转换

golang 各种数据类型转换 Conversions are expressions of the form T(x) where T is a type and x is an expression that can be converted to type T. string > duration d, e := time.ParseDuration("-1h") d, e := time.ParseDuration("1000ms") array > slice arr := [3]int{1,2,3} sli := arr[:] hex > int, big.Int // int n, err := strconv.ParseUint(val, 16, 32) // big.Int n := new(big.Int) n, _ = n.SetString(hex[2:], 16) float > int //float64 转成转成int64 var x float64 = 5.7 var y int = int64(x) int(math.Floor(f + 0.5)) base64 > hex p, err := base64.StdEncoding.DecodeString("QVJWSU4=") if err != nil { // handle error } h := hex.EncodeToString(p) fmt.Println(h) // prints 415256494e bytes > hex hex.EncodeToString(foo) string, float s := "3.1415926535" v1, err := strconv.ParseFloat(v, 32) v2, err := strconv.ParseFloat(v, 64) // float64 > string valueStr = strconv.FormatFloat(v, 'f', 3, 64) int > float i:=5 f:=float32(i) bytes > int var ba = []byte{ 56, 66, 73, 77 } var value int32 value |= int32(ba[0]) value |= int32(ba[1]) << 8 value |= int32(ba[2]) << 16 value |= int32(ba[3]) << 24 reverse the indexing order to switch between big and little endian. int8 > byte 因为两者间的类型及取值范围这些都不相同,不能直接进行转换。int8取值范围为: -128~127,如果要转化的话需要使用bytevalue=256+int8value ...

2017-10-31 · 5 min · 894 words · -

go file

go file if srcFile, err = os.Open(localPath); err != nil { logger.Errorf("failed to read src file: %v", err) return } defer srcFile.Close() fileInfo, err := srcFile.Stat() fileSize := fileInfo.Size() // file size os.PathSeparator file, _ := os.Getwd() log.Println("current path:", file) file, _ = exec.LookPath(os.Args[0]) log.Println("exec path:", file) dir,_ := path.Split(file) log.Println("exec folder relative path:", dir) os.Chdir(dir) wd, _ := os.Getwd() log.Println("exec folder absolute path:", wd) 文件复制进度 https://go.dev/play/p/N6xL8_fnV2

2017-10-31 · 1 min · 67 words · -

openssl basic

openssl basic 查看私钥长度 openssl rsa -in id_rsa.pem -text -noout get cert openssl s_client -connect site.com:636 </dev/null 2>/dev/null | openssl x509 -outform PEM > site.pem import cert into ca certs sudo keytool -importcert -noprompt -alias site-`date "+%Y%m%d%H%M%S"` -file ./site.pem -keystore /usr/java/latest/lib/security/cacerts -storepass changeit 查看证书信息 pem openssl x509 -noout -text -in ca.crt openssl x509 -noout -text -in foo.pem 查看 .der .crt 证书 openssl x509 -inform der -text -noout -in foo.crt pem 格式转 DER 格式 openssl x509 -outform der -in charles.pem -out charles.crt 查看 https 证书 openssl s_client -showcerts -connect www.baidu.com:443 # 证书链是倒序的, 从上面数第一个是叶子节点, 跟浏览器里看到的证书顺序相反. 查看 pem 证书内容 比如证书关联到了哪几个域名, 证书的有效期等. ...

2017-10-30 · 3 min · 458 words · -

emacs elpa

emacs elpa https://elpa.emacs-china.org/index-en.html emacs ~/.emacs (setq package-archives '(("gnu" . "http://elpa.emacs-china.org/gnu/") ("melpa" . "http://elpa.emacs-china.org/melpa/"))) M-x list-packages Type M-x list-packages to open the package list. Press ‘i’ to mark for installation, ‘u’ to unmark, and ‘x’ to perform the installation. Press ‘RET’ to read more about installing and using each package. https://www.emacswiki.org/emacs/InstallingPackages

2017-10-27 · 1 min · 50 words · -

nginx basic, command

nginx basic, command # Do not run, just test the configuration file. sudo nginx -t nginx -s signal # stop — fast shutdown # quit — graceful shutdown # reload — reloading the configuration file # reopen — reopening the log files almalinux install nginx sudo dnf update -y sudo dnf install nginx -y sudo systemctl enable --now nginx # install # nerdctl nerdctl run -d \ --name nginx \ --restart=always \ -p 80:80 \ -p 443:443 \ -v nginx-config:/etc/nginx \ -v nginx-www:/var/www \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /etc/localtime:/etc/localtime:ro \ nginx:1.29.1 # docker docker run -d \ --name nginx \ --restart=always \ -p 80:80 \ -p 443:443 \ -v nginx-config:/etc/nginx \ -v nginx-www:/var/www \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /etc/localtime:/etc/localtime:ro \ nginx:1.27.2 docker run -d \ --name nginx \ --restart=always \ -p 80:80 \ -p 443:443 \ -v nginx-config:/etc/nginx \ -v nginx-www:/var/www \ -v /etc/localtime:/etc/localtime:ro \ nginx:1.27.2 # podman podman run -d \ --name nginx \ -p 80:80 \ -p 443:443 \ -p 1022:1022 \ -v nginx-config:/etc/nginx \ -v nginx-www:/var/www \ -v nginx-cert:/etc/letsencrypt \ -v /etc/localtime:/etc/localtime:ro \ nginx:1.27.2 # nginx config text docker run --name nginx-config-test --rm -t -a stdout -v nginx-conf:/etc/nginx:ro nginx nginx -c /etc/nginx/nginx.conf -t # archlinux, mainline branch: new features, updates, bugfixes sudo pacman -S nginx-mainline # start sudo systemctl enable --now nginx # restart kill -HUP pid #stop kill -s QUIT 1628 文件下载 server { listen 8088; location /download/images { alias /home/net-files/images; # 我在这个路径下放了一张图片: fei_ji.jpg } } 下载 curl "http://my_ip_address:8088/download/images/fei_ji.jpg" > test.jpg ———————————————— 版权声明: 本文为CSDN博主「tomeasure」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接: https://blog.csdn.net/qq_29695701/article/details/86491331

2017-10-26 · 2 min · 252 words · -

正向代理, Forward Proxy, 反向代理, reverse proxy

正向代理, Forward Proxy, 反向代理, reverse proxy 正向代理是代理客户端, 为客户端收发请求, 使真实客户端对服务器不可见; 而反向代理是代理服务器端, 为服务器收发请求, 使真实服务器对客户端不可见。 正向代理, Forward Proxy 正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。 反向代理, reverse proxy 反向代理正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。 区别 正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回;而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。 作者: Jovi_Mac 链接: http://www.jianshu.com/p/208c02c9dd1d 來源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 https://github.com/moonbingbing/openresty-best-practices/blob/master/ngx/reverse_proxy.md 什么是反向代理 反向代理 (Reverse Proxy) 方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 举个例子,一个用户访问 http://www.example.com/readme,但是 www.example.com 上并不存在 readme 页面,它是偷偷从另外一台服务器上取回来,然后作为自己的内容返回给用户。但是用户并不知情这个过程。对用户来说,就像是直接从 www.example.com 获取 readme 页面一样。这里所提到的 www.example.com 这个域名对应的服务器就设置了反向代理功能。 反向代理服务器,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 反向代理典型应用场景 反向代理的典型用途是将防火墙后面的服务器提供给 Internet 用户访问,加强安全防护。反向代理还可以为后端的多台服务器提供负载均衡,或为后端较慢的服务器提供 缓冲 服务。另外,反向代理还可以启用高级 URL 策略和管理技术,从而使处于不同 web 服务器系统的 web 页面同时存在于同一个 URL 空间下。 Nginx 的其中一个用途是做 HTTP 反向代理,下面简单介绍 Nginx 作为反向代理服务器的方法。 场景描述: 访问本地服务器上的 README.md 文件 http://localhost/README.md,本地服务器进行反向代理,从 https://github.com/moonbingbing/openresty-best-practices/blob/master/README.md 获取页面内容。 ...

2017-10-26 · 1 min · 83 words · -

linux cut

linux cut cut -d ',' -f 3 # 截取前24个字符 cut -c-24 http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的。 (1) 其语法格式为: cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。 主要参数 -b : 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c : 以字符为单位进行分割。 -d : 自定义分隔符,默认为制表符。 -f : 与-d一起使用,指定显示哪个区域。 -n : 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的 范围之内,该字符将被写出;否则,该字符将被排除。 (2) cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢? cut命令主要是接受三个定位方法: 第一,字节 (bytes) ,用选项-b 第二,字符 (characters) ,用选项-c ...

2017-10-22 · 2 min · 414 words · -

Guava Multimap

Guava Multimap 在日常的开发工作中,我们有的时候需要构造像Map<K, List>或者Map<K, Set>这样比较复杂的集合类型的数据结构,以便做相应的业务逻辑处理。例如: 复制代码 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; public class MultimapTest { Map<String, List<StudentScore>> StudentScoreMap = new HashMap<String, List<StudentScore>>(); @Test public void testStudentScore(){ for(int i=10;i<20;i++){ StudentScore studentScore=new StudentScore(); studentScore.CourseId=1001+i; studentScore.score=100-i; addStudentScore("peida",studentScore); } System.out.println("StudentScoreMap:"+StudentScoreMap.size()); System.out.println("StudentScoreMap:"+StudentScoreMap.containsKey("peida")); System.out.println("StudentScoreMap:"+StudentScoreMap.containsKey("jerry")); System.out.println("StudentScoreMap:"+StudentScoreMap.size()); System.out.println("StudentScoreMap:"+StudentScoreMap.get("peida").size()); List<StudentScore> StudentScoreList=StudentScoreMap.get("peida"); if(StudentScoreList!=null&&StudentScoreList.size()>0){ for(StudentScore stuScore:StudentScoreList){ System.out.println("stuScore one:"+stuScore.CourseId+" score:"+stuScore.score); } } } public void addStudentScore(final String stuName,final StudentScore studentScore) { List<StudentScore> stuScore = StudentScoreMap.get(stuName); if (stuScore == null) { stuScore = new ArrayList<StudentScore>(); StudentScoreMap.put(stuName, stuScore); } stuScore.add(studentScore); } } ...

2017-10-18 · 2 min · 277 words · -

ConcurrentModificationException

ConcurrentModificationException 对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常 http://www.cnblogs.com/dolphin0520/p/3933551.html

2017-10-18 · 1 min · 3 words · -

AUTOCONF, AUTOMAKE, configure, make, make install

AUTOCONF, AUTOMAKE, configure, make, make install http://blog.csdn.net/linzhiji/article/details/6774410 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC, 并不是需要CC或GCC,它是个shell脚本。 make是用来编译的,它从Makefile中读取指令,然后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章。 configure ,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如 代码: ./configure -prefix=/usr 上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin), 资源文件就会安装在 /usr/share (而不是默认的/usr/local/share) 。 同时一些软件的配置文件你可以通过指定 -sys-config= 参数进行设定。 有一些软件还可以加上 -with、-enable、-without、-disable 等等参数对编译加以控制, 你可以通过允许 ./configure -help 察看详细的说明帮助。 2、make ,这一步就是编译,大多数的源代码包都经过这一步进行编译 (当然有些perl或python编写的软件需要调用perl或python来进行编译) 。 如果 在 make 过程中出现 error ,你就要记下错误代码 (注意不仅仅是最后一行) , 然后你可以向开发者提交 bugreport (一般在 INSTALL 里有提交地址) , 或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。 make 的作用是开始进行源代码编译,以及一些功能的提供, 这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装, make uninstal 是卸载,不加参数就是默认的进行源代码编译。 make 是 Linux 开发套件里面自动化编译的一个控制程序, ...

2017-10-14 · 1 min · 186 words · -

dnscrypt

dnscrypt Server # https://github.com/Cofyc/dnscrypt-wrapper # https://github.com/jedisct1/libsodium # https://jedisct1.gitbooks.io/libsodium/content/ yum install gcc # Install libsodium wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz ./configure make && make check sudo make install ln -s /usr/local/lib/libsodium.so.23.1.0 /usr/lib/libsodium.so.23 ldconfig # if you install libsodium from source # install libevent # http://libevent.org/ # https://geeksww.com/tutorials/operating_systems/linux/installation/how_to_install_libevent_on_debianubuntucentos_linux.php wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz tar xzf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8-stable ./configure -prefix=/opt/libevent make make install # install dnscrypt-wrapper git clone git://github.com/cofyc/dnscrypt-wrapper.git cd dnscrypt-wrapper make configure ./configure make install # set ip:port for dnscrypt on archlinux systemctl edit dnscrypt-proxy.socket https://wiki.archlinux.org/index.php/DNSCrypt_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) #start sudo systemctl start dnscrypt-proxy.service #stop sudo systemctl stop dnscrypt-proxy.socket #key, crt expired, recreate key, crt dnscrypt-wrapper -gen-crypt-keypair -crypt-secretkey-file=1.key dnscrypt-wrapper -gen-cert-file -crypt-secretkey-file=1.key -provider-cert-file=1.cert -provider-publickey-file=public.key -provider-secretkey-file=secret.key dnscrypt-wrapper -gen-crypt-keypair -crypt-secretkey-file=1.key -cert-file-expire-days=365 dnscrypt-wrapper -gen-cert-file -crypt-secretkey-file=1.key -provider-cert-file=1.cert -provider-publickey-file=public.key -provider-secretkey-file=secret.key -cert-file-expire-days=365 #restart dnscrypt server #restart dnscrypt client sample config file for client ...

2017-10-14 · 1 min · 156 words · -

swap

swap archlinux 禁用 swap 禁用 zram swap systemctl list-units --type=swap sudo systemctl mask dev-zram0.swap reboot 查看 swap 使用情况 # 没有输出的话就是没有启用 swap swapon --show swapon free -m cat /proc/swaps vmstat 1 5 NAME TYPE SIZE USED PRIO /dev/vda2 partition 1.9G 1.5G -1 # PRIO, Priority # /dev/vda2 是安装操作系统时划分的磁盘分区, 也可以使用文件来做为交换分区 # 启用 swap 分区 swapon /dev/vda2 # 如果是文件则 swapon /swap-file swapoff /swap-file # -s, --summary swapon -s|column -t # add swap to /etc/fstab, 启动之后自动挂载 swap 分区 # /dev/sda2, swap分区 UUID=ed325732-b768-4680-a4ff-24dd0da24509 none swap defaults 0 0 # swap 文件的配置 /swap-file none swap defaults 0 0 # 关闭swap交换分区 swapoff /dev/vda2 swapoff -a priority swap 分区的优先级 (priority)有啥用? 在使用多个swap分区或者文件的时候,还有一个优先级的概念 (Priority)。 ...

2017-10-13 · 2 min · 314 words · -

go regex, 正则

go regex, 正则 nodes := []string{"foo.bar-000.x", "foo.t0.bar","foo.bar"} reg := regexp.MustCompile(`foo\.(.[^\.]*)\.{0,1}.*`) for _, v := range nodes { result := reg.FindSubmatch([]byte(v)) fmt.Println("output: ", string(result[1])) } [^a-zA-Z ]+, 匹配所有不是小写大写字母和空格的字符 . 匹配任意一个字符, 如果设置 s = true, 则可以匹配换行符 [字符类] 匹配"字符类"中的一个字符,"字符类"见后面的说明 [^字符类] 匹配"字符类"外的一个字符,"字符类"见后面的说明 \小写Perl标记 匹配"Perl类"中的一个字符,"Perl类"见后面的说明 \大写Perl标记 匹配"Perl类"外的一个字符,"Perl类"见后面的说明 [:ASCII类名:] 匹配"ASCII类"中的一个字符,"ASCII类"见后面的说明 [:^ASCII类名:] 匹配"ASCII类"外的一个字符,"ASCII类"见后面的说明 \pUnicode普通类名 匹配"Unicode类"中的一个字符(仅普通类),"Unicode类"见后面的说明 \PUnicode普通类名 匹配"Unicode类"外的一个字符(仅普通类),"Unicode类"见后面的说明 \p{Unicode类名} 匹配"Unicode类"中的一个字符,"Unicode类"见后面的说明 \P{Unicode类名} 匹配"Unicode类"外的一个字符,"Unicode类"见后面的说明 复合: xy 匹配 xy (x 后面跟随 y) x|y 匹配 x 或 y (优先匹配 x) 重复: x* 匹配零个或多个 x,优先匹配更多(贪婪) x+ 匹配一个或多个 x,优先匹配更多(贪婪) x? 匹配零个或一个 x,优先匹配一个(贪婪) x{n,m} 匹配 n 到 m 个 x,优先匹配更多(贪婪) x{n,} 匹配 n 个或多个 x,优先匹配更多(贪婪) x{n} 只匹配 n 个 x x*? 匹配零个或多个 x,优先匹配更少(非贪婪) x+? 匹配一个或多个 x,优先匹配更少(非贪婪) x?? 匹配零个或一个 x,优先匹配零个(非贪婪) x{n,m}? 匹配 n 到 m 个 x,优先匹配更少(非贪婪) x{n,}? 匹配 n 个或多个 x,优先匹配更少(非贪婪) x{n}? 只匹配 n 个 x 分组: ...

2017-10-12 · 6 min · 1122 words · -

angular basic

angular basic install angular install nodejs @see nodejs basic install yarn http://blog.wiloon.com/?p=11228 install angular cli yarn global add @angular/cli yarn add angular-in-memory-web-api –dev ng config -g cli.packageManager yarn add yarn global bin to $PATH angular command 创建工作区 ng new project0 创建组件 ng generate component heroes 创建组件 简写 ng g c heroes ng generate component hero -it 创建service ng generate service hero ng serve –host 0.0.0.0 –port 4200 –open ng build –aot ng build –prod –build-optimizer ...

2017-10-11 · 1 min · 153 words · -

linux history

linux history cat ~/.bash_history 缓存 history -r 读取历史文件并将其内容添加到历史记录中,即重置文件里的内容到内存中.

2017-10-11 · 1 min · 8 words · -

golang struct/结构体

golang struct/结构体 //定义一个struct type Student struct { id int name string address string age int } 匿名结构体 //匿名结构 person := struct { Name string Age int }{Name: "name0", Age: 1} jsonBytes, _ := json.Marshal(person) fmt.Println("person:", string(jsonBytes)) type foo struct { Field0 string `json:"field0"` Field1 struct { Field2 string `json:"field2"` } `json:"field1"` Field3 int `json:"field3"` } https://github.com/jemygraw/TechDoc/blob/master/Go%E8%BD%BB%E6%9D%BE%E5%AD%A6/go_tutorial_8_struct_interface.md https://blog.csdn.net/books1958/article/details/22720033

2017-10-10 · 1 min · 57 words · -

五线谱, 钢琴

五线谱, 钢琴 拍号 4/4: 4分音符为一拍,每一小节有4拍, 可以用C表示 6/8: 8分音符为一拍,每一小节有6拍 连音线 延音线 https://zhidao.baidu.com/question/1769827496564950660.html 连音线是圆滑线和延音线的总称,即连音线有两种,一是延音线,一是圆滑线。 延音线用于连接两个或多个音高相同的音符,演奏时只演奏第一个音符,在延音线下面的其他相同音符就只延长其时值,而不重复按键 (在钢琴上) 或换弓 (在小提琴上) 。 圆滑线用于连接不同音高的音符,意思是要求将圆滑线下面的那些音都无棱角地、光滑地演奏出来。 延音线和圆滑线的形状都是弧线,圆滑线较粗一点。 升降号 https://zhuanlan.zhihu.com/p/31872055 https://zhuanlan.zhihu.com/p/23155564 https://wenku.baidu.com/view/1eea3f34b90d6c85ed3ac604.htm 跳音(Staccato) https://zhuanlan.zhihu.com/p/133957089

2017-10-07 · 1 min · 25 words · -

golang list

golang list package main import ( "container/list" "fmt" ) func main() { l := list.New() //创建一个新的list for i := 0; i < 5; i++ { l.PushBack(i) } printList(l) //输出list的值,01234 fmt.Println("") fmt.Println(l.Front().Value) //输出首部元素的值,0 fmt.Println(l.Back().Value) //输出尾部元素的值,4 l.InsertAfter(6, l.Front()) //首部元素之后插入一个值为6的元素 printList(l) //输出list的值,061234 fmt.Println("") l.MoveBefore(l.Front().Next(), l.Front()) //首部两个元素位置互换 printList(l) //输出list的值,601234 fmt.Println("") l.MoveToFront(l.Back()) //将尾部元素移动到首部 printList(l) //输出list的值,460123 fmt.Println("") l2 := list.New() l2.PushBackList(l) //将l中元素放在l2的末尾 printList(l2) //输出l2的值,460123 fmt.Println("") l.Init() //清空l fmt.Print(l.Len()) //0 printList(l) //输出list的值,无内容 } func printList(l *list.List) { for e := l.Front(); e != nil; e = e.Next() { fmt.Print(e.Value) } } list是一个双向链表。该结构具有链表的所有功能。 ...

2017-10-06 · 2 min · 225 words · -

rename

rename 重命名 rename #files copy-sys-log-01 copy-sys-log-02 rename copy-sys-log-0 copy-app-log-0 copy-sys-log-0* 7000 7001 7002 rename 700 node-700 700* node-7000 node-7001 node-7002 rename + 正则 rename 's/\d{4}-\d{2}-\d{2}-//' *.md 批量重命名 find . -name '*.md' -exec rename 's/\d{4}-\d{2}-\d{2}-//' {} \; http://www.cnblogs.com/longdouhzt/archive/2012/04/30/2477282.html http://blog.51cto.com/jiemian/1846951

2017-09-30 · 1 min · 38 words · -

斜率

斜率 斜率亦称"角系数",表示平面直角坐标系中表示一条直线对横坐标轴的倾斜程度的量。 直线对X 轴的倾斜角α的正切值tgα称为该直线的"斜率",并记作k,k=tgα。规定平行于X轴的直线的斜率为零,平行于Y轴的直线的斜率不存在。对于过两个已知点(x1,y1) 和 (x2,y2)的直线,若x1≠x2,则该直线的斜率为k=(y1-y2)/(x1-x2)。[3] https://baike.baidu.com/item/%E6%96%9C%E7%8E%87

2017-09-29 · 1 min · 7 words · -