当前位置: 首页 > news >正文

如何搭建门户网站深圳疫情防控最新消息

如何搭建门户网站,深圳疫情防控最新消息,撩人的网站怎么做,常用的网页制作工具有什么golang 函数式编程库samber/mo使用: IO 如果您不了解samber/mo库, 请先阅读第一篇 Option 在函数式编程中,副作用和纯函数是最常见的概念。 IO用来封装IO这类副作用。 什么是副作用 副作用是在计算结果的过程中,改变了系统状态…

golang 函数式编程库samber/mo使用: IO

如果您不了解samber/mo库, 请先阅读第一篇 Option

在函数式编程中,副作用和纯函数是最常见的概念。 IO用来封装IO这类副作用。

什么是副作用

副作用是在计算结果的过程中,改变了系统状态或者与外部世界进行了可观察的交互。副作用包括但不限于:

  • 操作文件系统
  • 往数据库插入记录
  • 调用http请求
  • 修改全局变量
  • 打印日志
  • 访问系统状态

副作用之所以不好,是因为它使得代码难以理解和测试。当系统状态或者外界环境发生变化时, 同一段代码的执行会产生不同的结果。如下所示:

var globalVar intfunc incrementGlobalVar() {globalVar++
}func main() {fmt.Println("Before:", globalVar)incrementGlobalVar()fmt.Println("After:", globalVar)
}

什么是纯函数

纯函数是指一个函数,给定相同的输入,总是返回相同的输出,并且没有任何可观察的副作用。不取决于系统状态,也不会对系统状态进行修改。 这类函数具有参数透明性、可测试性、并行性等诸多优秀特性, 所以我们偏好纯函数。但是只有纯函数也是不可能的, 我们必然会和外界进行交互, 所以只能尽可能得进行隔离。mo.IO就是用来包装IO操作的。

IO的使用

我们通过一个例子说明IO的使用, 我们写一个判断是否周末的函数, 这需要依赖系统时间。我们可以用mo.NewIO将这个依赖封装起来, 用 Run函数正式执行获取今天是周几。

package mainimport ("time""github.com/samber/mo"
)func checkIfTodayWeekend(today mo.IO[int]) bool {result := today.Run()return result%6 == 0 || result%7 == 0
}func main() {today := mo.NewIO(func() int {return int(time.Now().Weekday())})println("today is %v", today.Run())println("today is weekend? %v", checkIfTodayWeekend(today))
}

由于我们隔离了系统依赖, 测试变得非常简单

package mainimport ("testing""github.com/samber/mo"
)func TestCheckIfTodayWeekend(t *testing.T) {// Mock the current day of the week as Tuesday (2)today := mo.NewIO(func() int { return 2 })isWeekend := checkIfTodayWeekend(today)if isWeekend {t.Errorf("Expected false for Tuesday, but got true")}// Mock the current day of the week as Saturday (6)today = mo.NewIO(func() int { return 6 })isWeekend = checkIfTodayWeekend(today)if !isWeekend {t.Errorf("Expected true for Saturday, but got false")}// Mock the current day of the week as Sunday (7)today = mo.NewIO(func() int { return 7 })isWeekend = checkIfTodayWeekend(today)if !isWeekend {t.Errorf("Expected true for Sunday, but got false")}
}
http://www.hkea.cn/news/402304/

相关文章:

  • wordpress vip查看插件南宁seo费用服务
  • 建站之星模板怎么设置手机如何做网站
  • 上海公司网站制作价格西安百度关键词排名服务
  • 长沙网页制作开发公司aso优化方案
  • 深圳罗湖网站制作成人电脑基础培训班
  • 无锡网站制作咨询深圳网站设计十年乐云seo
  • 大连城市建设网站seo优化顾问服务阿亮
  • 福州 网站建设沈阳seo关键词排名优化软件
  • 做网站还要买服务器吗镇江seo
  • 专门做特价的网站优化排名案例
  • 网站建设的一些问题友链交易交易平台
  • 创业初期要建立公司的网站吗seo排名优化代理
  • 做网站全屏尺寸是多少钱站长工具查询系统
  • 做企业平台的网站有哪些手机网站制作教程
  • 免费行情的软件大全下载北京公司排名seo
  • 网站联系方式要素qq群推广链接
  • div css 网站模板免费的云服务器有哪些
  • 35互联做网站好吗网店运营工作内容
  • 网站建设模拟软件营销培训课程内容
  • 深圳建网站兴田德润专业2023年最新新闻简短摘抄
  • 学校网站怎么查询录取百度相册登录入口
  • 自助建设彩票网站网址查询工具
  • 怎么创建网页的快捷方式seo入门版
  • 互联网企业网站网络优化
  • 山东手工活外发加工网四川二级站seo整站优化排名
  • 行业门户网站开发百度竞价怎么做效果好
  • 适合前端做项目的网站百度网盘搜索
  • 下载网站怎么下载广州网站定制多少钱
  • 西安攻略旅游自由行怎么玩北京seo软件
  • 汉川网站建设sem代运营