série de vibração 2-dardo sintaxe

Definição de variável

Declare variáveis ​​de duas maneiras, var ou declaração de palavra-chave do tipo especificado:

var str = "test";
String str2 = "string2";

Definição de constante:
use final e const para definir a
Insira a descrição da imagem aqui
diferença entre final e const: final pode começar sem atribuição, pode ser atribuído apenas uma vez, final não apenas possui as características de constante de tempo de compilação const, o mais importante é que é uma constante de tempo de execução e final é uma inicialização lenta Ou seja, é inicializado antes do primeiro uso em tempo de execução.

Tipo de dados

Tipo de string

** Definição: ** aspas simples, aspas duplas, aspas triplas podem definir string

  var str1 = 'string';
  var str2 = "string2";
  String str3 = 'string3';
  String str4 = "string 4";
  String str5 = '''string 5
  string6

  string7
  ''';

Costura:


  print("$str1 $str2");
  print(str1 + " " + str2);
Tipo numérico

int deve ser um número inteiro, double pode ser um número inteiro ou ponto flutuante

  int ival = 1;
  double dval = 2.3;
  bool bval = true;
Matriz / coleção

definição de lista

//第一种定义list的方式
  var l1  = ['aa','bb','cc'];
  print(l1);
  print(l1.length);
  print(l1[1]);
//第二种定义list的方式
var l2 = new List();
l2.add('张三');
l2.add('李四');
l2.add('王五');
print(l2);
print(l2[2]);
//定义指定类型list
var l3 = new List<String>();
l3.add('指定类型');

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\index.dart"
[aa, bb, cc]
3
bb
[张三, 李四, 王五]
王五
[Done] exited with code=0 in 0.657 seconds

definição de mapa

  // 第一种定义Maps的方式
  var person = {
    "name":"zhangsan",
    "age": 20,
    "work":["程序员","外卖"]
  };
  print(person);
  print(person["name"]);
  print(person["work"]);

  //第二种定义Maps的方式
  var p = new Map();
  p["name"] = "lisi";
  p["age"] = 30;
  p["work"] = ["student", "服务员"];
  print(p);

Saída:

{name: zhangsan, age: 20, work: [程序员, 外卖]}
zhangsan
[程序员, 外卖]
{name: lisi, age: 30, work: [student, 服务员]}

é o tipo de julgamento

var str = "test";
  if(str is String){
    print('string 类型');
  }else{ 
    print("不是string 类型");
  }

Operador

Aqui, apenas escreva operadores especiais; outros idiomas, como java, não são arredondados repetidamente
:

  int a= 13;
  int b = 5;
  print(a~/b); //取整

?? = operador de atribuição

  // b??=23;表示如果b为空的话, 23赋值给b
  int a = 10;
  a ??= 20;
  print(a);
  
  int b;
  b ??= 23;
  print(b);

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\demo01.dart"
10
23

operador

  var a;
  var b = a ?? 10;
  print(b);

  var c = 2;
  var d = c ?? 30;
  print(d);

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\demo01.dart"
10
2

Operador trinocular

//三目运算符
  bool flag = true;
  String str = flag? 'ture' : 'false';

Função

Função com parâmetros opcionais


  String getUserInfo(String username, [int age]){
    if(age != null){
     return "姓名:$username-----年龄:$age";
    }
    return "姓名:$username--- 年龄保密";
  }

  print(getUserInfo("张三",30));
  print(getUserInfo("李四"));

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\demo01.dart"
姓名:张三-----年龄:30
姓名:李四--- 年龄保密

Parâmetro padrão

  String getUserInfo(String username, [int age, String sex = '男']){
    if(age != null){
     return "姓名:$username---性别:$sex--年龄:$age";
    }
    return "姓名:$username----性别:$sex---- 年龄保密";
  }

  print(getUserInfo("张三",30));
  print(getUserInfo("李四"));

Parâmetro nomeado

  String getUserInfo(String username, {int age, String sex = '男'}){
    if(age != null){
     return "姓名:$username---性别:$sex--年龄:$age";
    }
    return "姓名:$username----性别:$sex---- 年龄保密";
  }

  print(getUserInfo("张三",age:30));
  print(getUserInfo("李四"));

Encerramento

'Variáveis ​​globais residentes na memória poluirão a global, variáveis ​​locais serão recicladas pelo mecanismo de coleta de lixo, não poluirão a global.
Se você deseja implementar a memória residente e não poluir o global, este assunto pode usar encerramentos

Class

Propriedade privada, use private em Java, apenas sublinhe a variável diretamente no dardo

class Person{
  String _name; //私有属性,对应java中的private
  int age; //公有属性,对应java中的public
}

Inicialize variáveis ​​de instância antes que o construtor seja executado

class Rect{
  int width;
  int height;
  Rect():width=2,height=10{
  
  }


… Operação em cascata (concatenação)

class Person{
  String name;
  int age;

  Person(this.name,this.age);

  printInfo(){
    print("name=${this.name}-----age = ${this.age}");
  }
}

main(List<String> args) {
  var p1 = new Person("张三",20);
  p1.printInfo();

  p1.name="李四";
  p1.age=30;
  p1.printInfo();

  p1..name="王五"
    ..age=50
    ..printInfo();

}

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\demo01.dart"
name=张三-----age = 20
name=李四-----age = 30
name=王五-----age = 50

A função mixins
implementa várias funções de herança semelhantes à classe, mas não herdadas

class A{
  String info = "this is A";
  void printA(){
    print("A");
  }
}

class B{
  void printB(){
    print("B");
  }
}

class C with A,B{

}

void main(List<String> args) {
  var c = new C();
  c.printA();
  c.printB(); 
  print(c.info);
}

Resultado de saída:

[Running] dart "d:\work\workspace\dart\dartdemo\demo01.dart"
A
B
this is A

Condições de uso para mixins:

  1. Como um objeto de integração inteligente de classe de minxins, ele não pode herdar outras classes, como a Classe A no código acima não pode integrar uma classe personalizada
  2. Classes que são mixins não podem ter construtores
  3. Uma classe pode mixins múltiplos mixins
  4. Mixins não são heranças ou interfaces, e os ouvidos são um novo recurso do dardo
Publicado 159 artigos originais · 22 elogios · mais de 90.000 visualizações

Acho que você gosta

Origin blog.csdn.net/ytuglt/article/details/105087360
Recomendado
Clasificación