dart之旅(二)- 内建类型

像大多数语言一样,dart也提供了number,string,boolean等类型,包括以下几种:

  • numbers
  • strings
  • booleans
  • lists (also known as arrays)
  • maps
  • runes (for expressing Unicode characters in a string)
  • symbols

    这几种内建类型的特点之一是你可以使用字面量来创建一个相应的对象。你也可以使用构造函数来初始化这些对象,除了number和boolean,因为这两个类型没有对应的构造函数。

number类型

number类型包含int和float类型,int在dart的VM环境下,取值范围在-263 到 263-1之间。如果需要转为js,范围为js的范围,-253 到 253-1。代码示例如下:


import ‘dart:math‘;
main(List<String> args) {

  int a = 2;
  int a1 = 2.0; //报错
  double b = 2.0;
  double b1 = 2; //dart2.1会自动转换,之前的版本会报错
  var c = 0x111; //支持16进制表示
  print(pow(2, 65)); // 打印出0 超出数字范围
}

将数字转换为字符串可以使用数字的toString方法,将字符串转换为数字可以使用字符串的parse方法。这点和js相比,js借助隐式类型转换可以更灵活的转换数字和字符串。


// 数字转字符串

  print(2.toString());
  print(2.5333.toString());
  print(2.5333.toStringAsFixed(2));//2.50 保留几位小数
  print(2.5333.toStringAsExponential(2));// 科学计数法
  print(2.5333.toStringAsPrecision(8));//2.5333000

// 字符串转数字

  print(int.parse(‘1‘));
  print(double.parse(‘2‘));

在运算上,数字支持常用的四则运算,此外dart提供了一个math包来支持更复杂的运算。

字符串

在语法上,dart的字符串和python的语法更为接近,如可以使用单引号和双引号,使用三个双引号表示多行字符串。以下都是合法的字符串表示形式:

var s1 = ‘hhh‘;
var s2 = "‘11‘";
var s3 = ‘111‘
         "222";
var s4 = """222
       333

       2222""";

在字符串的方法上,与js的字符串很类似,甚至部分代码可以直接拷到js中执行。下面是关于dart字符串方法的一个例子,更详细的文档可以看这里

//长度
‘1234‘.length; //4

// 取子串
‘1234‘.substring(1,2);

// 取unicode值
print(‘123456‘.codeUnitAt(1)); //js中的charCodeAt()

// 判断某个字符串是不是以某子串开始或结束
‘123456??‘.startsWith(‘12‘); //js相同
‘123456??‘.endsWith(‘??‘); //js相同

// replace
‘112‘.replaceAll(‘1‘, ‘x‘);// ‘xx2‘ 全部替换
‘112‘.replaceFirst(‘1‘, ‘x‘);// ‘x12‘ 只替换第一个

//split
print(‘1234561‘.split(‘3‘)); // 同js

// trim,trimLeft,trimRight修剪两边,左边,右边的空格,同js
print(‘ 1234561  ‘.trim());

//contains
print(‘1234561‘.contains(‘8‘)); //false 判断字符串是否包含某个子串

// indexOf,lastIndexOf,获取某个字串第一次出现和最后出现的位置。同js,没有返回-1
print(‘  1234561  ‘.indexOf(‘9‘));// -1

// padLeft,padRight 同js的padStart和padEnd
print(‘1234561‘.padLeft(9, ‘0‘));//001234561
print(‘1234561‘.padEnd(9, ‘0‘));//123456100

// toUpperCase,toLowerCase同js
print(‘x‘.toUpperCase());
print(‘X‘.toLowerCase());

原文地址:https://www.cnblogs.com/imgss/p/10045381.html

时间: 2024-08-04 00:27:19

dart之旅(二)- 内建类型的相关文章

python基础(文件输入/输出 内建类型 字典操作使用方法)

本文主要介绍了python基础入门,包括文件输入/输出.内建类型.字典操作等使用方法 一.变量和表达式 代码如下: >>> 1 + 1 2>>> print 'hello world' hello world>>> x = 1               >>> y = 2>>> x + y3 Python是强类型语言,无法根据上下文自动解析转换成合适的类型. Python是一种动态语言,在程序运行过程中,同一个变量

python高级编程之(类级):子类内建类型

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #类级 #在2.2中,提出了类型(type0与类(class)统一(请访问:https://www.python.org/download/releases/2.2.3/descintro(可能已经不存在了))-这使内建类型的子类化成为可能,并且添加一个新内建类型object #用于所有内建类的公共祖先 #展示一个名为distinctdict类的代码,与平常的dic

零基础学python-4.2 其它内建类型

这一章节我们来聊聊其它内建类型 1.类型type 在python2.2的时候,type是通过字符串实现的,再后来才把类型和类统一 我们再次使用上一章节的图片来说明一些问题 我们通过对照上面的图片.在python3.4的时候,type有了一些改变,从2.7的返回<type 'xxx'>到3.4的返回<class 'xxx'>.除了返回一个类之外,还把提示给改了.使用class.这样更加清晰,明白 2.Null(None) 3.文件(在其它章节介绍) 4.集合(在其它章节介绍) 5.函

【ThinkingInC++】43、内建类型封装在一个类里

内建类型 C++数据类型包括: 1)内置的基本数据类型,如整型.浮点型.布尔型等,均有一个关键字对应,如int,float,bool 2)C++ STL(标准库)引入了一些扩展类型,有时候也归为基本类型,比如字符串类型(string),复数类型(complex),向量(vector)等. 3)其他,即用户自定义类型,也叫抽象数据类型(ADT),即用户通过class,struct,enum定义的各种数据类型. /** * 书本:[ThinkingInC++] * 功能:把一个内建类型封装在一个类里

[golang note] 内建类型

基础类型 √ golang内建基础类型有布尔类型.整数类型.浮点类型.复数类型.字符串类型.字符类型和错误类型. 复合类型 √ golang支持的复合类型有指针.数组.数组切片.字典.通道.结构体和接口.

内建类型零初始化的问题

比如有如下这样一段代码,我们很快就能意识到,x 和ptr开始的值都是未定义的,但是sc却很明显会调用其默认构造函数,得到合理的初始化. class someclass{ public: someclass():val(){} private: int val; } void foo(){ int x; int *ptr; someclass sc; ...... } 在C++中,处理基础类型(int, bool, float, double, 指针类型等)跟处理类类型还是有一定差别的.基础类型并

[python学习篇][书籍学习][python standrad library][内建类型]之数值

数值类型 - int, float, long, complex 有四种不同的数值类型:普通整数.长整数.浮点数和复数 普通整数(或者简称整数)使用C中的long实现,其精度至少为32位(sys.maxint始终设置为当前平台最大的普通整数值,最小值是-sys.maxint - 1).长整数具有无限的精度.浮点数字通常使用C中的double实现:有关你的程序所运行的机器上的浮点数精度及其内部表示形式的信息在sys.float_info中可以获得.复数有实部和虚部,各是一个浮点数.若要从复数z中提

[python学习篇][书籍学习][python standrad library][内建类型]迭代器类型

我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list.tuple.dict.set.str等:一类是generator,包括生成器和带yield的generator function.这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 可以使用isinstance()判断一个对象是否是Iterable对象: >>> from collections import Iterable >>> isinstance([

跟王老师学注解(二)注解的分类及内建注解

跟王老师学注解(二):注解的分类及内建注解 主讲教师:王少华   QQ群号:483773664 一.注解的分类 在Java中,根据注解的使用方法和用途,可将注解分成3类,分别是 内建注解(也称为基本注解),定义于java.lang包下 元注解(Meta Annotation) 自定义注解 二.内建注解 (一)分类 在JDK5.0及以上的版本的java.lang包下提供了3种标准的注解类型,分别是 @Override: @Deprecated @SuppressWarnings (二)@Overr