由于我的 3D 打印机没有自动关机的功能,想要实现打完自动关机的功能该怎么实现呢?
第一种方式:通过硬件增改线路实现,例如打印机主板预留自动关机功能,通过高低电平控制继电器模块进而控制电源。这种方式体积较大,不太好集成,而且对新手不友好。
第二种方式:通过功率插座监测功能延时关机,我这里现成的是米家(功率插座不一定小米,能接入米家就行,我的是电小酷三十块左右吧),通过米家 APP 智能场景实现,这种方式简单应用,而且可以应用于很多场景。但这种方式会有一个问题,就是一开机就会关机的问题。总是要手动去开关智能场景?今天我们用两个智能场景来解决吧。

什么是动态(静态)类型,强(弱)类型

基础版本

编译时就知道变量类型的是静态类型;运行时才知道一个变量类型的叫做动态类型。比如:

编译器在将 int age = 18; 这段代码编译的时候就会把 age 的类型确定,换言之,你不能对他进行除以 0 的操作等等,因为类型本身就定义了可操作的集合;但是像 C++ 里常见的 auto ite = vec.iterator(); 这种也属于静态类型,这种叫做类型推导,通过已知的类型在编译时期推导出不知道的变量的类型。在静态类型语言中对一个变量做该变量类型所不允许的操作会报出语法错误。

但是像 var name = student.getName(); 这行 JavaScript 代码就是动态类型的,因为这行代码只有在被执行的时候才知道 name 是字符串类型的,甚至是 null 或 undefined 类型。你也没办法进行类型推导,因为 student.getName 函数签名根本不包含返回值类型信息。后面会介绍通过一些其他手段来给函数签名加上类型。在动态类型中对一个变量做该变量类型所不允许的操作会报出运行时错误。

软件测试

对于开发活动中的各种测试,上图是一种最常见的划分方法:从下至上依次为 单元测试->集成测试->端到端测试 ,随着其集成度的递增,对应的自动化程度递减。

  • describe: 定义一个测试套件
  • it:定义一个测试用例
  • expect:断言的判断条件
  • toEqual:断言的比较结果

最近转到 Windows,看到 win10 新版本推出 wsl2,原生支持 docker

直接 64 位提供下载链接

可使用下载工具直接下载:

# 英文版
https://software-download.microsoft.com/db/Win10_2004_English_x64.iso?t=c185ceac-c80f-43df-9ca7-dee97ed861b4&e=1590681952&h=480d89d94f7bfafb8805876a2c00a9db
# 中文版
https://software-download.microsoft.com/pr/Win10_2004_Chinese(Simplified)_x64.iso?t=ba747a52-5d00-4d7f-9e11-f6908e4c1755&e=1592018554&h=a92b157137cccb503444b3192b457e9f

原理

通过使用手机浏览器标识访问 下载链接,可以看到下载的选项。

演示

  1. 访问下载链接,通过 chrome 或者 edge 什么的都行
  2. 调出开发者工具,windows 一般快捷键都是F12,Mac 的ctrl+command+I,或者菜单里面找。
  3. 切换设备工具栏,选择手机标识
  4. 刷新,选择windows 10 - language
  5. 选择系统架构
  6. 下载