美文网首页
Dart基础语法<四> 方法

Dart基础语法<四> 方法

作者: 果汁味Studio | 来源:发表于2020-12-26 14:16 被阅读0次

本节主要记录Dart方法中的

  • 普通方法
  • 一等方法
普通方法

普通方法在用法上和java类似。

int plus(int i, int j, int k) {
  return i + j + k;
}

void main() {
  print(plus(2, 3, 4));
}

支持忽略类型写法(但基于可读性等因素,还是尽量不要这么写)

plus1( i, j) {
  return i + j;
}

如果只有一个表达式的方法,可以使用以下写法:

plus2(i, j, k) => i + j + k;

注:Dart中不支持方法重载

一等方法

在Dart语法中,方法也是对象,并且具有一种类型 Function(这表示方法可以作为变量甚至其他方法的参数,即可以把方法作为参数供其他方法调用。)

abstract class Function {

  external static apply(Function function, List positionalArguments,
      [Map<Symbol, dynamic> namedArguments]);

  int get hashCode;

  bool operator ==(Object other);
}
  1. 如下列代码,f1运行结果为方法f的执行结果,即输出function
void f() {
  print("function");
}

void f1(Function function) {
  function();
}

void main() {
  Function function = f;
  f1(function);
}

但这种写法在调用时,存在无法确定回调函数返回值和参数类型个数问题
如下列代码,方法f1在调用f2的时候,不能确定f2的参数类型个数及返回类型

void f1(Function function) {
  function();
}

void f2(int i, int j) {
  print(i + j);
}

void main() {
  Function function2 = f2;
  f1(function2);
}
运行时报错如下 参数不匹配错误.png
  1. 针对以上情况,可以使用关键字typedef
    定义一个类型F,该类型其实是个方法,需要传入两个int类型参数ij,返回void
typedef void F(int i, int j);

void f2(int i, int j) {
  print(i + j);
}

void f3(F f) {
  f(1, 2);
}

void main() {
  f3(f2);
}
  1. 当然也可以直接导入方法
void f4( void f (int i, int j) ) {}

总结:在Java中,如果需要通知调用者或者其他地方方法执行过程的各种情况,可能需要指定一个接口,比如View的onClickListener。而在Dart中,我们可以直接指定一个回调方法给调用的方法,由调用的方法在合适的时机执行这个回调。

匿名方法

没有名字的方法,称之为匿名方法。用法与javalamda表达式相同。

相关文章

  • Dart基础语法<四> 方法

    本节主要记录Dart方法中的 普通方法 一等方法 普通方法 普通方法在用法上和java类似。 支持忽略类型写法(但...

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • Dart(四)基础语法

    容器 1、StringBuffer 先声明一下,StringBuffer并不是容器但还是放到了这一章按照官方的说法...

  • 一个Android菜鸟入门Flutter 笔记(一)

    1. Dart 基础语法 1.1 hello world 先来看个hello world,入口依然是main方法....

  • Flutter笔记--Dart任务调度

    dart异步代码是如何执行的 在Dart基础语法一文中我们了解了dart的一些基础语法,包括异步代码的使用。在da...

  • Flutter学习笔记

    Dart基础语法 一、选择开发工具 首先需要安装Dart SDK(https://www.dart-china.o...

  • Flutter一:Flutter简介、环境配置

    以项目驱动,中间穿插各个组件 第一天:Flutter简介、环境搭建、Dart语法基础一 第二天:Dart语法基础二...

  • Flutter-Dart基础语法入门

    Dart语法基础 Dart语言简介 Dart是Google推出的一门编程语言,最初是希望取代Javascript运...

  • dart语法7-泛型

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法8-库

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

网友评论

      本文标题:Dart基础语法<四> 方法

      本文链接:https://www.haomeiwen.com/subject/wuhglktx.html