当前位置: 首页 > wzjs >正文

做网站建设公司赚钱吗南宁seo服务优化

做网站建设公司赚钱吗,南宁seo服务优化,seo推广怎么入门,网站留言短信提醒Dart 是面向对象语言,函数也是对象,类型为 Function。这意味着函数可以赋值给变量或作为参数传递给其他函数 1.箭头表达式 箭头语法只能用于返回一个表达式,不能包含多条语句或代码块 int add(int a, int b) > a b;> expr语法是{ …

Dart 是面向对象语言,函数也是对象,类型为 Function。这意味着函数可以赋值给变量或作为参数传递给其他函数

1.箭头表达式

箭头语法只能用于返回一个表达式,不能包含多条语句或代码块
``

int add(int a, int b) => a + b;

=> expr语法是{ return expr; }的简写形式。=> 符号有时被称为箭头语法。

2.参数

  • 命名参数
    命名参数是可选的,除非它们被明确标记为required,那么必须有命名参数

required 关键字的用途是表明某个参数为必需参数。这意味着在调用函数或者构造函数时,必须为这些参数提供值,不然就会产生编译时错误

使用 {} 定义的是 命名参数,调用时必须通过参数名传值。

void enableFlags({bool? bold, bool? hidden}) {		//定义...
}enableFlags(bold: true, hidden: false);	//调用
enableFlags(hidden: true, bold: false);	//调用,命名参数与参数位置无关,通过参数名传递
enableFlags();							//调用,命名参数是可选的,除非它们被明确标记为`required`

required :修饰的参数是必选参数

void enableFlags({bool? bold, required bool? hidden}) {		//定义...
}
enableFlags();				//错误,hidden参数被标记为required 是必选参数
enableFlags(hidden: true);	//正确,参数bold是可选的,hidden参数必选

为参数指定默认值,使用=。指定的值必须是编译时常量

void enableFlags({bool bold = false, bool hidden = false}) {...
}// bold 将为 true;hidden 将为 false。
enableFlags(bold: true);
  • 位置参数
    位置参数按照函数中参数定义的顺序,在调用时按照顺序依次传参。
void example(bool bold, bool hidden) {print("bold: $bold, hidden: $hidden");
}example(true, false); // 只能按顺序传递

位置参数一般不可以省略,除非将一组函数参数包裹在 [] 中,将它们标记为可选位置参数。

void say(String name, String msg, [String? device]) {...
}say("json", "hello");				//参数三为[]可选参数
say("json", "hello", "Phone");
}

对于可选参数,其类型必须为可空类型,也就是要在类型后面添加 ?。可选参数意味着在调用函数时可以不传入该参数。要是参数类型为非可空类型,在不传入该参数的情况下,函数内部就没有合适的值赋给这个参数。而可空类型它有默认参数为null

3.main()函数

dart中main原型

void main(List<String> arguments) {// 这里可以使用接收到的命令行参数
}

可使用args 库来定义和解析命令行参数。

4.匿名函数

匿名函数(Anonymous Function) 是没有名字的函数,通常用于临时计算、回调函数或者闭包。匿名函数可以像普通函数一样接受参数并返回值。
匿名函数(Anonymous Function) 也叫 Lambda 或 箭头函数(如果只有一条语句)。

void main() {var multiply = (int a, int b) {return a * b;};print(multiply(3, 4)); // 12
}

5.闭包

闭包(Closure)在Dart中其实是一种特殊的函数。它不仅能执行某些操作,还能“记住”它被创建时所在环境中的变量。换句话说,闭包是一个函数加上它外部作用域的变量的组合。

/// 返回一个将 [addBy] 添加到函数参数的函数。
Function makeAdder(int addBy) {return (int i) => addBy + i;
}void main() {// 创建一个加 2 的函数。var add2 = makeAdder(2);// 创建一个加 4 的函数。var add4 = makeAdder(4);assert(add2(3) == 5);assert(add4(3) == 7);
}

makeAdder() 捕获了变量 addBy。无论返回的函数走到哪里,它都会记住 addBy。

闭包的特点

  1. 访问外部作用域:闭包可以访问它定义时外部的变量。
  2. 持久化记忆:即使外部函数已经执行完毕,闭包仍然能记住那些变量。
  3. 动态更新:如果外部变量变了,闭包里的值也会跟着变。

6.撕裂

撕离(Tear-offs)是一种语法特性,允许你直接引用一个函数或方法(包括构造函数),将其作为函数值传递或赋值,而无需显式地创建一个新的函数包装器。它本质上是将现有函数或方法的引用“撕下来”使用。

撕离的基本概念

  • 当你有一个命名函数、方法或构造函数时,可以通过省略调用时的括号 () 来获取它的引用,而不是直接调用它。
  • 撕离的结果是一个函数对象(Function 类型),可以存储在变量中、传递给其他函数或稍后调用。

函数撕裂

void sayHello(String name) {print("Hello, $name!");
}void main() {// 撕离:将函数 sayHello 的引用赋值给变量var greet = sayHello; // 注意没有括号 ()// 使用撕离后的函数greet("Alice"); // 输出: Hello, Alice!
}

方法撕裂

class Person {void introduce(String name) {print("My name is $name.");}
}void main() {var person = Person();// 撕离实例方法var intro = person.introduce; // 注意没有括号 ()// 调用撕离后的方法intro("Bob"); // 输出: My name is Bob.
}

应用场景

  1. 回调函数:将撕离后的函数传递给需要回调的地方,例如事件监听。
  2. 简化代码:避免手动定义匿名函数,直接复用已有函数。
  3. 函数式编程:与高阶函数(如 map、forEach)结合使用。

7.函数返回值

所有函数都返回一个值。如果未指定返回值,语句 return null; 会被隐式添加到函数体中。即未指定返回值则返回null

 foo() {}assert(foo() == null);

8.生成器

官方文档看不懂

http://www.dtcms.com/wzjs/305059.html

相关文章:

  • 媒体平台化seo内链优化
  • 首都之窗石家庄网站建设seo
  • 网站themes目录网店推广软文范例
  • 做胃镜多少钱天津津门网站I竞价排名点击
  • 是网站建设专业好竞价排名采用什么计费方式
  • 广东企业移动网站建设哪家好百度一下知道官网
  • 怎么申请免费企业网站公司seo是什么职位
  • 用WordPress做网站入门课西安seo经理
  • 公安局网站不备案怎么制作seo搜索优化
  • 网站绿色色调设计最新病毒感染什么症状
  • 潍坊电商网站建设深圳优化公司排名
  • 海外seo网站建设西安网红
  • 网站栏目管理建设满足seo需求的网站
  • 绍兴网站制作南宁优化网站网络服务
  • 怎样做 网站做seo五合一网站建设
  • 龙岩做网站有那几家比较好的搜索引擎
  • 做兼职什么网站好2023新闻摘抄大全
  • 新网站怎么做排名百度咨询电话 人工
  • 网站后期维护企业网站推广方案策划
  • 列出网站开发建设的步骤东莞网站制作公司联系方式
  • 电子商务网站建设有什么意义网络搜索词排名
  • 安卓开发和网站开发沈阳网站seo排名公司
  • 站外推广营销方案电商平台有哪些?
  • 微信官方网站网址网站不收录怎么办
  • 网站内外链怎么做效果好爱站工具包
  • 网站的推广新郑网络推广公司
  • 重庆微信网站作公司抖音seo推广
  • 深圳市响应式网站建设百度一下官网网址
  • 网站建设指导网页设计与制作步骤
  • 惠州市做网站百度区域代理