• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

dart基础----函数传值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. string type

main(List<String> args) {
  String name = "huhx";
  changIt(name);
  print('after: $name'); // after: huhx
}

void changIt(String name) {
  print('before: $name'); // before: huhx
  name = "linux";
}

2. reference Type

class User {
  String name;

  User(this.name);
}

main(List<String> args) {
  User user = User("huhx");
  changIt(user);
  print('after: ${user.name}'); // after: linux
}

void changIt(User user) {
  print('before: ${user.name}'); // before: huhx
  user.name = "linux";
}

3. deep clone

import 'dart:convert';

class User {
  String name;

  User(this.name);

  factory User.fromJson(Map<String, dynamic> userMap) => User(userMap['name']);

  Map<String, dynamic> toJson() => {'name': this.name};

  User clone() {
    final String jsonString = json.encode(this);
    final jsonResponse = json.decode(jsonString);

    return User.fromJson(jsonResponse as Map<String, dynamic>);
  }
}

main(List<String> args) {
  User user = User("huhx");
  changIt(user);
  print('after: ${user.name}'); // after: huhx
}

void changIt(User user) {
  User temp = user.clone();
  // User temp = user; then: after linux
  print('before: ${temp.name}'); // before: huhx
  temp.name = "linux";
}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
dart中Map类型详解发布时间:2022-07-18
下一篇:
【****】Dart编程语言基础入门教程 - 03 MacOS 下安装 SDK发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap