有沒有辦法通過參考而不是通過顫振中的值來呼叫函式。
uj5u.com熱心網友回復:
如果您要問的是是否可以呼叫函式并通過參考而不是通過值傳遞引數,那么不完全是。從技術上講,Dart 總是使用 pass-by-value (盡管我更喜歡稱它為“pass-by-assignment”)。
如果要模擬傳遞參考,可以將引數包裝在另一個物件中以添加間接級別:
class Reference<T> {
T value;
Reference(this.value);
}
void trimString(Reference<String> string) {
string.value = string.value.trim();
}
uj5u.com熱心網友回復:
0
確實是一個非常好的問題,在顫振中,函式也是一流的物件,所以你可以在任何地方傳遞它們。
你喜歡
typedef ProfileFormSubmitCallback = void Function(
String? photoUrl,
String firstName,
String lastName,
String email,
);
then
您可以參考您的功能,例如,
ProfileFormSubmitCallback myFunction;
uj5u.com熱心網友回復:
不確定這是否是您的意思,但可以說您有這樣的 Switch
Switch(
value: false,
onChanged: (value) {
print(value);
},
),
然后onChanged是一個函式。要使用現有的功能,而不是像
void myFunction(bool value) {
print(value);
}
你可以簡單地做:
Switch(
value: false,
onChanged: myFunction,
),
uj5u.com熱心網友回復:
這就是函式的傳遞和使用方式。希望這是你想要的
class ButtonPrimary extends StatelessWidget {
final String text;
final double? height;
final double? width;
final VoidCallback onPressed;
const ButtonPrimary({
Key? key,
required this.onPressed,
required this.text,
this.height,
this.width,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
height: height ?? 50,
width: width ?? MediaQuery.of(context).size.width * .6,
child: ElevatedButton(
onPressed: onPressed,
child: Widget(...),
),
);
}
}
和用法,
ButtonPrimary(
onPressed: onLoginPressed,
text: 'Register',
width: MediaQuery.of(context).size.width * .9,
)
....
void onLoginPressed() {
// Do sth
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/526222.html
標籤:扑镖
