09 2021 档案
摘要:结构体类型可以用来保存不同类型的数据,也可以通过方法的形式来声明它的行为。本文将介绍go语言中的结构体和方法,以及“继承”的实现方法。 (目录) 结构体类型 结构体类型(struct)在go语言中具有重要地位,它是实现go语言面向对象编程的重要工具。go语言中没有类的概念,可以使用结构体实现类似的功
阅读全文
摘要:我在使用jenkins实现hexo博客自动发布中介绍了可以使用jenkins实现博客自动发布,其实还有一种更简单的方法,就是GitHub提供的持续集成服务:GitHub Actions。下面就来介绍一下如何使用GitHub Actions来实现将hexo博客自动编译及发布到GitHub Pages和
阅读全文
摘要:本文介绍使用shell语法实现Fisher–Yates shuffle 洗牌算法。 (目录) Fisher-Yates shuffle 算法简介 Fisher–Yates shuffle 洗牌算法可以用于对数组进行随机排列,它的时间复杂度为O(n),伪代码如下: To shuffle an arra
阅读全文
摘要:在程序执行过程中,操作系统会进行线程调度,同一时刻能同时执行的程序数量跟CPU的内核线程数有关,比如4核CPU,同时最多只能有4个线程。Go 语言中的运行时系统也会对goroutine进行调度,调度器会频繁地让goroutine处于中断或者运行状态,这就不能保证代码执行的原子性(atomicity)
阅读全文
摘要:本文介绍使用shell实现将一个整数m随机分解为n个数。 要求: 将一个整数m分解为n个随机数,n个随机数之和要等于m 指定随机数的最小值 分析: 这与leetcode上的两道题类似: 343. 整数拆分 剑指 Offer 14- I. 剪绳子 下面来介绍一种思路: 随机抽取 n-1 个区间为(0,
阅读全文
摘要:通道(channel)是Go 语言中一种特殊的数据类型,通道本身就是并发安全的,可以通过它在多个 goroutine 之间传递数据。通道是Go 语言编程理念:“Do not communicate by sharing memory; instead, share memory by communi
阅读全文
摘要:在Linux Bash编程中,介绍了Bash编程基本语法,本文记录一下Bash编程中使用到的相关shell 语法技巧。 (目录) 字符串处理 在字符串中传递变量 $ num=8 # 方法1:双引号 $ text="There are $num ducks swimming in a pond" $
阅读全文
摘要:本文介绍使用shell实现随机数生成以及对浮点数进行四舍五入运算。 (目录) 随机数生成 生成0-1之间的随机数 生成0-1的随机数: #!/bin/bash random_number=`echo "scale=4 ; ${RANDOM}/32767" | bc -l` # 生成0-1的随机数 #
阅读全文
摘要:本文介绍Go语言中的string类型、strings包和bytes.Buffer类型,介绍几种字符串拼接方法。 (目录) string类型 string类型的值可以拆分为一个包含多个字符(rune类型)的序列,也可以被拆分为一个包含多个字节 (byte类型) 的序列。其中一个rune类型值代表一个U
阅读全文