瞎扯
只要翻过flutter的源码.就会发现.有很多的assert.
到底是干嘛的,
assert
例如,BottomNavigationBar
BottomNavigationBar({
Key key,
@required this.items,
this.onTap,
this.currentIndex = 0,
BottomNavigationBarType type,
this.fixedColor,
this.iconSize = 24.0,
}) : assert(items != null),
assert(items.length >= 2),
assert(
items.every((BottomNavigationBarItem item) => item.title != null) == true,
'Every item must have a non-null title',
),
assert(0 <= currentIndex && currentIndex < items.length),
assert(iconSize != null),
type = type ?? (items.length <= 3 ? BottomNavigationBarType.fixed : BottomNavigationBarType.shifting),
super(key: key);
在构造方法后面,有一堆的assert.
google一下.
翻译过来,断言的意思.
其作用大致就是.
if
的缩写.
如果assert(false)
条件为false.那么就会抛出异常
并且,这个玩意只在debug模式下有效.这就更爽了.
最后,assert
除了传判断条件以外,还可以传一个提示字符串.
也就是assert(x==1,'x==1了,报错')
正如上面贴的BottomNavigationBar
代码中的一段
try/catch
在dart中,可以配合一个on属性.
也就是.on用来判断类型,catch捕获
try {
...
} on OutOfLlamasException { // 一个具体的 Exception
print('只匹配OutOfLlamasException');
} on Exception catch (e) { // 所有的 Exception
print('所有exception');
} catch (e) { // 不指定错误类型,匹配所有
print('匹配所有');
}
交流群:493180098,这是个很少吹水,交流学习的群.
APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.
网友评论