簡體   English   中英

如何指示 function 變量的返回類型

[英]How to indicate the return type of a function variable

我已經像這樣聲明了 function 變量;

final Function localVideo;

有沒有辦法表明這個 function 的返回類型是Widget

基於答案的當前代碼是;

typedef LocalVideoReturnWidget = Widget Function();

class VideoLocalOverlay extends StatefulWidget {

  final LocalVideoReturnWidget localVideo;

const VideoLocalOverlay(
      {Key key,
      this.localVideo,...

這給出了錯誤

type '() => dynamic' is not a subtype of type '() => Widget'

計划使用 function 作為

child: GestureDetector(
                    onTap: () {
                      print("Click");
                    },
                    child: widget.localVideo(),
                    ),

我之前定義的方式可以正常工作,沒有任何錯誤。 但由於某種原因,我無法讓 GestureDetector 工作。 我認為這可能是由於返回類型不清楚。

將此添加到文件頂部

typedef int FunctionThatReturnInt(inputInt number);

使用typedef的另一種方式

typedef FunctionThatReturnInt = int Function(inputInt number);

並使用 function 之類的

final FunctionThatReturnInt localVideo;

在 class 內或您使用的任何地方

這是你要找的嗎?

final Widget Function() localVideo;

或者,如果不需要參數,請改用:

final Widget VoidCallback localVideo;

使用typedef

typedef LocalVideo = Widget Function();

用法:

final LocalVideo localVideo;

首先

final Function localVideo;

會給您一個錯誤,因為當您將任何事物聲明為final時,您應該為其初始化一個值。

這就是您使用返回類型 Widget 初始化 function 的方式。

Widget localVideo(String s1, int d1){
  // function body
  Widget widgetReturn;
  return widgetReturn;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM