“int?get priority => 1;”是什么意思?做?
What does " int? get priority => 1;" do?
我正在阅读如下的 flutter 代码:
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:test_get_app/user_controller.dart';
class AuthMiddleware extends GetMiddleware {
final authService = UserController.findOrInitialize; // Here is error, this line can't find UserController
@override
int? get priority => 1;
bool isAuthenticated = false;
@override
RouteSettings? redirect(String? route) {
isAuthenticated = true;
if (isAuthenticated == false) {
return const RouteSettings(name: '/login');
}
return null;
}
}
当我到达下一行时,我无法理解它的语法以及它是如何工作的?
int? get priority => 1;
这是一个so-calledgetter。吸气剂可用于提供对 class 属性的读取访问。
他们也可以直接 return 值,就像你的情况一样。
它们的访问方式与 class 的属性相同,它们声明于:
final middleWare = AuthMiddleware();
final priority = middleWare.priority;
在你的情况下,getter 可能必须或可以实现(参见 @override
注释),因为我猜中间件的所有实现都必须声明它们的优先级。由于声明的类型是 int?
它也可能 return null
而不是整数。
Getter 可以使用表达式声明。就像你的情况一样。使用块体也可以:
int? get priority {
return 1;
}
int?
表示它是一个 int 但 int 可以为 null
=> 1
表示 () {return 1;}
我正在阅读如下的 flutter 代码:
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:test_get_app/user_controller.dart';
class AuthMiddleware extends GetMiddleware {
final authService = UserController.findOrInitialize; // Here is error, this line can't find UserController
@override
int? get priority => 1;
bool isAuthenticated = false;
@override
RouteSettings? redirect(String? route) {
isAuthenticated = true;
if (isAuthenticated == false) {
return const RouteSettings(name: '/login');
}
return null;
}
}
当我到达下一行时,我无法理解它的语法以及它是如何工作的?
int? get priority => 1;
这是一个so-calledgetter。吸气剂可用于提供对 class 属性的读取访问。
他们也可以直接 return 值,就像你的情况一样。
它们的访问方式与 class 的属性相同,它们声明于:
final middleWare = AuthMiddleware();
final priority = middleWare.priority;
在你的情况下,getter 可能必须或可以实现(参见 @override
注释),因为我猜中间件的所有实现都必须声明它们的优先级。由于声明的类型是 int?
它也可能 return null
而不是整数。
Getter 可以使用表达式声明。就像你的情况一样。使用块体也可以:
int? get priority {
return 1;
}
int?
表示它是一个 int 但 int 可以为 null=> 1
表示() {return 1;}