Dart之基本语法使用

//dart语言的入口main,没有返回,会自动调用,,参数是list集合

//注意事项定义字符串的时候,可以使用单引号或者双引号

main (List<String> args){

  print("hello world");

 

//定义变量

// 变量类型 变量名称 = 复制 如下

 

String name = 'name';

int age = 18;

double height = 1.88;

 

//方法一输出

print(name+'$age');

//方法二输出

print('$name'+'$age');

//注意定义的变量可以修改值,但是不能赋值其他类型

// name=111; 这是错误的写法

 

// 类型推导 (type inference) 格式如下

// 变量名称 = 赋值 runtimetype 运行的时候可以确定该数据类型

var name1 = "kl";

 

print(name1.runtimeType);

//如果希望在一个变量数据类型确定后,可以赋值给其他的数据类型,可以使用dynamic类型

dynamic name2 = "123";

print(name2);

name2=123;

print(name2);

 

//final和const 都是定义常量 他们的区别

// 1 const 复制的时候在编译的时候就确定下来,而final在运行的时候才确定

// 2 const 不可以复制给dataTime.now() final一定赋值后有确定结果后

//就不能再次赋值

//

 

//数据类型中的数值 有float和double类型

//数据类型的转换 将字符串解析成数字

String name3 = "1234";

int num3 = int.parse(name3);

//dart 中提供了bool类型 true和false

bool isTrue= true;

 

//dart的类型安全性就是你不能在if中使用非bool类型作判断 ,下面的写法就是错的啊

// var message = 'hello Dart';

 

// if(message){

//   print("我这样做的 ");

// }

 

//dart字符串是UTF-16编码的序列,你可以用单引号和双引号来创建一个字符串

//可以用''' '''来创建多个字符串,如下

String 

name4 = 

'''你在吗

  你好

  你哈''';

print(name4);

 

//dart 中有3中集合类型,list map和set数据类型

//list 是有序集合 ,set是无序集合,并且元素不是重复的啊

List<String> listname = ["1","2","4","5"];

Set<String> setName = {"kl","ui","python"};

print("$listname"+"====="+"$setName");

 

Map<String,String> map= {"hello":"niha"};

 

print("key===${map.keys}"+"value===${map.values}");

 

listname.forEach((name)=>{

 

print(name)

 

});

 print(setName.elementAt(1));

//通过key来获取map中的元素

print("获取map元素"+map["hello"]);

 

int result = sum(10,20);

 

print(result);

 

print(total(12,

num2: 23,

 

));

 

print(total2(12,13));


 

 // 1.将函数赋值给一个变量

  var bar = foo;

  print(bar);

 

  // 2.将函数作为另一个函数的参数

  test(foo);

 

  // 3.将函数作为另一个函数的返回值

  var func =getFunc();

  func('kobe');



 

}

 

//dart 中函数的定义

// 返回值 函数名 

// 返回值

 

//这是函数的第一种写法

// int sum(num num1,num num2)

// {

//   int sumtest = num1.toInt() + num2.toInt();

  

//   return sumtest;

// }

//上面的写法也可以写成下面的写法

int sum(num num1,num num2)=>num1.toInt()+num2.toInt();

// 函数的参数分为可选参数和不可选参数

//可选参数又分为命名可选参数{}和位置可选参数[]

//这是命名可选参数

int total(int num1,{int num2})

{

  return num1+num2;

}

 

//这个是位置可选参数

int total2(int num1,[int num2])

{

  return num1+num2;

}

 

//如果某个可选参数必须传值,可以在他前面添加required修饰 这个包含在package:meta/meta.dart

// int total3(int num1,{int num2, (@required int  num3)})

// {

//   return num1+num2;

// }

 

//java和OC都不能将函数作为参数或者赋值一个变量

// 1.定义一个函数

foo(String name) {

  print('传入的name:$name');

}

 

// 2.将函数作为另外一个函数的参数

test(Function func) {

  func('coderwhy');

}

 

// 3.将函数作为另一个函数的返回值

getFunc() {

  return foo;

}

 

//匿名函数,就是没有名字的函数

 

//词法作用域

//dart中的词法有自己明确的作用域范围,它是根据代码的结构({})依次向外查找



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值