pengqy的个人博客

小小菜坤前端

类型检测操作符

运算符 含义
as 定型
is 如果对象具有指定的类型,则为 True
is! 如果对象具有指定的类型,则为 False

使用 as 操作符将对象转换为特定类型。通常,您应该使用它作为在对象上进行 is 测试的简写,后面是使用该对象的表达式。例如,考虑以下代码:

1
2
3
4
if (eat is Person) {
// Type check
eat.food = 'apple';
}

您可以使用 as 运算符使代码更短:

1
(eat as Person).food = 'apple';

注意:以上代码不相等。如果 eat 为空或不为 Person,第一个示例(带 is)什么也不做;第二个(带有 as)抛出异常。

赋值操作符

正如您已经看到的,可以使用=操作符赋值。如果指定的变量为空,则使用??=运算符。

1
2
3
4
// 赋值给a
a = value;
// 如果b为空,则赋值给b;否则,b保持不变
b ??= value;

级联符号(..)

级联(..)允许对同一对象进行一系列操作。除了函数调用外,您还可以访问同一对象上的字段。这通常可以省去创建临时变量的步骤,并允许您编写更流畅的代码。
考虑以下代码:

1
2
3
4
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));

第一个方法调用 querySelector()返回选择器对象。级联表示法后面的代码操作这个选择器对象,忽略可能返回的任何后续值。上例等价于:

1
2
3
4
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));

你也可以嵌套你的级联。例如:

1
2
3
4
5
6
7
8
final addressBook = (AddressBookBuilder()
..name = 'jenny'
..email = 'jenny@example.com'
..phone = (PhoneNumberBuilder()
..number = '415-555-0100'
..label = 'home')
.build())
.build();

要小心在返回实际对象的函数上构造级联。例如,以下代码失败:

1
2
3
var sb = StringBuffer();
sb.write('foo')
..write('bar'); // Error: method 'write' isn't defined for 'void'.

调用 sb.write()返回 void,并且不能在 void 上构造级联。
注意:严格地说,级联的“双点”符号不是运算符。这只是 Dart 语法的一部分。

flutter 开发中遇到的问题

在安卓中通过 SystemChrome.setEnabledSystemUIOverlays([]);设置隐藏系统状态栏时还能获取到高度的问题


解决方法:

在 MainActivity 类的 super.onCreate 方法后添加如下代码

Kotlin:

1
window.setFlags(android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)

Java:

1
getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)

准备工作

使用镜像
由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:

1
2
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

安装Git for Windows
Flutter 依赖此命令行工具.
如果已安装Git for Windows,请确保命令提示符或PowerShell中运行 git 命令,不然在后面运行flutter doctor时将出现Unable to find git in your PATH错误, 此时需要手动添加你安装的git目录的路径,例如:C:\Program Files\Git\bin至Path系统环境变量中。

获取 Flutter SDK

使用镜像
1.去 flutter 官网下载其最新可用的安装包,点击下载
注意,Flutter 的渠道版本会不停变动,请以 Flutter 官网为准。另外,在中国大陆地区,要想正常获取安装包列表或下载安装包,可能需要翻墙,读者也可以去 Flutter github 项目下去下载安装包 。
2.将安装包 zip 解压到你想安装 Flutter SDK 的路径(如:C:\src\flutter;注意,不要将 flutter 安装到需要一些高权限的路径如 C:\Program Files\)。
3.在 Flutter 安装目录的 flutter 文件下找到 flutter_console.bat,双击运行并启动 flutter 命令行,接下来,你就可以在 Flutter 命令行运行 flutter 命令了。

flutter packages get
配置镜像不然报错

userzeorpengqy

1.下载

去官网下载 mysql–> 下载地址

2.解压

在解压后的根目录,需要做两步小操作

  1. 创建一个名为 data 的文件夹
  2. 创建一个名为 my.ini 的文件

3.修改 my.ini 文件

default-character-set 设置成 utf8 会报错,建议直接复制下面的粘贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir= E:\\mysql-8.0.17-winx64
# 设置mysql数据库的数据的存放目录
datadir= E:\\mysql-8.0.17-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

4.配置 mysql 的环境变量

  1. 找到安装 mysql 的 bin 目录复制存放地址
  2. 编辑系统环境变量
  3. 找到 path 点击新建粘贴复制的地址

5.以管理员身份运行 cmd

  1. 切换到安装 mysql 的 bin 目录
  2. 执行 mysqld install 命令
  3. 执行 mysqld –initialize –user=mysql –console 命令
  4. 执行 net start mysql 命令
  5. 执行 mysql -u root -p 命令
  6. 修改密码

注意如果前面有错误操作,请先删除 data 文件夹里的文件,不然会一直报错

执行 mysqld –initialize –user=mysql –console 命令会输出如下

1
2
3
2019-08-30T06:44:52.051415Z 0 [System] [MY-013169] [Server] E:\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server in progress as process 3336
2019-08-30T06:45:08.437004Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: %IhckOVm8fK0
2019-08-30T06:45:16.083958Z 0 [System] [MY-013170] [Server] E:\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server has completed

此处会生成一个临时密码例如:
A temporary password is generated for root@localhost: ==%IhckOVm8fK0==,
等下登录 mysql 时需要用到,尽量复制,不然很容易写错

修改密码命令
1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

常用命令

  1. 生成静态文件
    1
    hexo g
  2. 文件生成后立即部署到 deploy 配置里对应的网站
    1
    hexo d
  3. 监视文件变动
    1
    hexo -w 
  4. 起一个本地服务来进行调试
    1
    hexo s -debug 
  5. 起一个本地服务来进行调试并监听文件变化
    1
    hexo s --w 
  6. 清楚缓存
    1
    hexo clean 
  7. 创建一遍新文章
    1
    hexo new "文章名称" 
userzeorpengqy
0%