首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我不知道在哪里使用Void函数和返回类型函数

我不知道在哪里使用Void函数和返回类型函数
EN

Stack Overflow用户
提问于 2019-09-29 13:24:04
回答 3查看 725关注 0票数 1

我真的是编程新手,在学习Dart函数时,我遇到一个程序,它有,但我不能理解是什么让他们使用不同的函数,一个有返回值,另一个没有返回值。这两个函数都会在主程序中被调用,而且两个子程序都会在不返回任何值的情况下完成任务(至少我没有看到类似的情况),有人能指出为什么必须使用返回类型函数吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import (....)

void main() => runApp(XylophoneApp());

class XylophoneApp extends StatelessWidget {

//Void Fuction
  void player(int songNumber) {
    final player = AudioCache();
    player.play('note$songNumber.wav');
  }

//Function with return
  Expanded buildKey({colors, songNumber}) {
    return Expanded(
      child: FlatButton(
        color: colors,
        onPressed: () {
          player(songNumber);
        },
      ),
    );
  }

//Call in main function
buildKey(colors: Colors.red, songNumber: 1),
EN

回答 3

Stack Overflow用户

发布于 2019-09-29 13:34:53

XylophoneApp.player函数不返回任何值,因为它是一个void函数(相反,它只会播放声音),其中XylophoneApp.buildKey函数将返回一个Expanded类型的值,然后由您决定是否使用返回值。

票数 1
EN

Stack Overflow用户

发布于 2019-09-29 14:51:05

方法player只是播放一首歌曲并返回给调用者,即不向调用者方法返回任何值。因此,返回类型为Void

然而,buildKey方法创建了一个需要在UI中呈现的按钮buildKey方法是创建一个小部件,它是一个FlatButton,当单击该小部件时,它会播放一首歌曲。此方法返回此按钮,需要将其放置在窗口小部件层次结构中,以便flutter将其呈现在屏幕上。

票数 1
EN

Stack Overflow用户

发布于 2019-09-29 15:19:28

一般来说,函数-不仅仅是dart中的函数-由3件事组成:

  • input
  • process
  • output

这就像在数学中,如果你有(y =x+ 1)。这是一个函数,它将'x‘作为输入,然后对那个'x’执行一个将'1‘加到’x‘的过程,然后将输出返回给'y’。在这个简单的例子中,输入类型是一个数字,输出类型也是一个数字。然而,在编程中,情况可能并不总是如此。例如,您可以有一个函数,它接受一个单词作为输入,然后计算该单词中有多少个字符,并返回该单词中的字符总数。但也许你不需要知道这个数字。也许您只需要将其存储在数据库中,然后再回来。在这种情况下,您的函数将不必返回数字或返回任何内容。它应该只是将其保存到数据库中。如果数据库中已经有这个单词,但是没有它的长度,该怎么办呢?在这种情况下,您的函数不必接受单词作为输入,它应该自己访问数据库,接受单词,计算字符,并将结果保存在数据库中。你看,从根本上说,我们仍然有一个输入,进程和输出,但是输入和输出不是直接传入或传出函数,函数负责获取它的输入,返回的是输出。所以这真的取决于你想让你的函数做什么。

关于你发布的代码。看一下play函数,它接受songNumber作为输入,它的类型是int,然后它执行一些处理,比如创建一个Player对象,并使用songNumber作为实际歌曲文件名的一部分。然后,它的输出是您的扬声器正在播放的歌曲。你听到的声音就是实际的输出。除了声音之外,你不需要任何其他的输出。这就是为什么在代码中它会返回void。另一方面,第二个函数buildKey的输出是一个Expanded类型的widget,可以在代码中使用它。buildKey函数还接受color & songNumber作为输入。正在创建Inside buildKey Expanded小部件。在该小部件内部,还创建了FlatButton。第一个输入(color)用于指定FlatButton颜色,而第二个输入(songNumber)则传递给FlatButton onPressed函数。当按下按钮触发onPressed函数时,它将调用player函数,并给出之前传递的songNumber

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58155637

复制
相关文章
Angularjs基础(六)
AngularJS HTML DOM     AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令。 ng-disabled指令     ng-disabled指令直接绑定应用数据到HTML的disabled属性。       实例:       <div ng-app="" ng-init="mySwitch=true">         <p>           <button ng-disableled="mySwitch">点我!</button
用户1197315
2018/01/19
3K0
什么是 503 服务不可用错误?
浏览网页时最常见的错误之一是“503 服务不可用错误”,此消息表明 Web 服务器遇到技术问题并且无法处理请求。
网络技术联盟站
2022/03/16
7.5K0
什么是 503 服务不可用错误?
【AngularJS】—— 8 自定义指令
AngularJS支持用户自定义标签属性,在不需要使用DOM节点操作的情况下,添加自定义的内容。 前面提到AngularJS的四大特性:   1 MVC   2 模块化   3 指令   4 双向数据绑定 下面将会介绍如下的内容: 1 如何自定义指令   2 自定义指令的使用   3 自定义指令的内嵌使用   如何自定义指令:   Angular是基于模块的框架,因此上来肯定要创建一个自己的模块: var myAppModule = angular.module("myApp",[
用户1154259
2018/01/17
8210
【AngularJS】—— 8 自定义指令
AngularJS 模块
你可以通过 AngularJS 的 angular.module 函数来创建模块:
陈不成i
2021/07/23
1.9K0
AngularJS基础入门初探
  (2)由Misko Hevery 等人创建,2009年被Google所收购,用于其多款产品
Edison Zhou
2018/08/20
1.8K0
AngularJS基础入门初探
AngularJS API之bootstrap启动
对于一般的使用者来说,AngularJS的ng-app都是手动绑定到某个dom元素。但是在一些应用中,这样就显得很不方便了。 绑定初始化 通过绑定来进行angular的初始化,会把js代码侵入到html中,但是对于新手使用来说,还是足够了! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://apps.bdimg.com/libs/
用户1154259
2018/01/17
6880
第215天:Angular---指令
在 AngularJS 中将前缀为 ng- 这种属性称之为指令,其作用就是为 DOM 元素调用方法、定义行为绑定数据等
半指温柔乐
2018/09/11
3.2K0
第218天:Angular---模块和控制器
所有需要ng管理的代码必须被包裹在一个有ng-app指令的元素中 ng-app是ng的入口,表示当前元素的所有指令都会被angular管理(对每一个指令进行分析和操作)
半指温柔乐
2018/09/11
6910
Angular.js学习笔记 (二)
用A链接对象解析url的组成 var url = 'https://www.baidu.com:8080/aaa/1.html?id=10#name'; var aLink
HUC思梦
2020/09/03
1.2K0
Angular.js学习笔记(三)
1、uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ "TANK is GOOD" | lowercase }} // 结果:tank is good 2、date 格式化 {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25 3、number 格式化(保留小数) {{149016.1945000 | number:2}}//保留两位 {{149016.1945000 | number}}//默认为保留3位 4、currency货币格式化 {{ 250 | currency }} // 结果:$250.00 {{ 250 | currency:"RMB ¥ " }} // 结果:RMB ¥ 250.00 5、filter查找 输入过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称。 filter 过滤器从数组中选择一个子集 // 查找name为iphone的行 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | filter:{'name':'iphone'} }} 同时filter可以自定义比较函数。 6、limitTo 截取 {{"1234567890" | limitTo :6}} // 从前面开始截取6位 {{"1234567890" | limitTo :6,6}} // 从第6位开始截取6位 {{"1234567890" | limitTo:-4}} // 从后面开始截取4位 7、orderBy 排序 // 根据id降序排 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id':true }}
HUC思梦
2020/09/03
8.2K0
(4)Angular的开发
angular框架,库,是一款非常优秀的前端高级JS框架,有了这个框架就可以轻松构建SPA应用程序,通过指令宽展了HTML,通过表达式绑定数据到HTML。
达达前端
2019/07/22
3.1K0
Angular.js学习笔记 (一)
- angular中最重要的概念是指令(directive) - ng-model 是双向数据绑定的指令,效果就是将当前元素的value属性和模型中的[user.name]建立绑定关系 ### 模块(Module) - 我们可以通过angular.module创建一个模块 - angular.module方法传递两个参数才是创建模块,一个参数是获取模块 ### 控制器(Controller)
HUC思梦
2020/09/03
1.6K0
7-进军 angular1.x 表单和事件、模块
通常 AngularJS 应用程序将模块和控制器包含在 JavaScript 文件中。
西南_张家辉
2021/02/02
2.3K0
【AngularJS】—— 12 独立作用域
前面通过视频学习了解了指令的概念,这里学习一下指令中的作用域的相关内容。 通过独立作用域的不同绑定,可以实现更具适应性的自定义标签。借由不同的绑定规则绑定属性,从而定义出符合更多应用场景的标签。 本篇将会总结下面的内容:   1 为何需要独立作用域   2 如何实现独立作用域   3 作用域的数据绑定 之前有一些错误,是由于replace拼写错误导致的。 拼写正确后,网友发现报错,无法正常工作。这是因为模板中存在单标签<br>,导致模板无法正确解析~ 再次感谢博友们提出的错误! 独立作
用户1154259
2018/01/17
1.4K0
【AngularJS】—— 12 独立作用域
angularjs学习第一天笔记
    您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点评与赐教。谢谢!
小小许
2018/08/30
2.2K0
angularjs学习第一天笔记
angularjs学习第一天笔记
    您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点评与赐教。谢谢!
小小许
2018/09/20
2.1K0
11-angular 实例学习-2
一些重要的 demo dropList <div ng-app="myApp" ng-controller="myCtrl" > <select ng-model="adStyle" ng-change="look();" > <option value="0">全部广告类型option> <option value="1">图片广告option> <option value="2">图音视广告op
西南_张家辉
2021/02/02
2.2K0
第214天:Angular 基础概念
  + https://github.com/angular/angular.js/releases
半指温柔乐
2018/09/11
1.9K0
【AngularJS】—— 7 模块化
AngularJS有几大特性,比如:   1 MVC 2 模块化   3 指令系统   4 双向数据绑定 那么本篇就来看看AngularJS的模块化。   首先先说一下为什么要实现模块化:   1 增加了模块的可重用性   2 通过定义模块,实现加载顺序的自定义   3 在单元测试中,不必加载所有的内容   之前做的几个例子,控制器的代码直接写在script标签里面,这样声明的函数都是全局的,显然不是一个最好的选择。   下面看看如何进行模块化: <script type=
用户1154259
2018/01/17
5150
【AngularJS】—— 7 模块化
angularjs学习第六天笔记(指令简介学习)
  您好,由于周末有事情,没哟学习angularjs,几天晚上开始继续学习angularjs,坚持加油每一天。谢谢
小小许
2018/09/20
5400

相似问题

模块“MyApp”不可用

21

Angular.js:未捕获错误,无模块: myapp

60

未捕获的错误:模块'myApp‘不可用!(AngularJS)

30

“模块'myapp‘不可用”,引导崩溃

12

错误:[$injector:nomod]模块'myApp.view1‘不可用

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文