• Erlang之数据类型


    整数

    Erlang里允许任意长度的整数 

     
    erlang代码
    1. 1> 123456789 * 987654321 * 112233445566778899 * 998877665544332211.    

    不可变的变量 
    Erlang里的变量首字母要求大写
    erlang代码
    1. 1> X = 123456789.   
    Erlang里的变量像代数里的变量一样只允许赋值一次,可以使用f()函数来forget all variable bindings 
    赋过值的变量称为bound variable,否则称为unbound variable 
    “=”在这里不是赋值操作符,而是模式匹配符 
    在Erlang里一个变量只是一个值的引用,即一个指向存储值的区域的指针,而这个值不能被改变 

    Erlang里变量不可变最大的好处利于多核编程,因为Erlang不像C或Java,它没有mutable state,所以没有shared memory,没有锁 

    浮点数
    erlang代码
    1. 1> 5/3.      
    2. 1.66667     
    3. 2> 4/2.      
    4. 2.00000     
    5. 3> 5 div 3.      
    6. 1     
    7. 4> 5 rem 3.      
    8. 2     
    9. 5> 4 div 2.      
    10. 2     
    11. 6> Pi = 3.14159.      
    12. 3.14159     
    13. 7> R = 5.      
    14. 5     
    15. 8> Pi * R * R.      
    16. 78.5397     
    Atom 
    在Erlang里,Atom用来表示非数字常量,它类似于C或Java里的枚举类型 
    Atom以小写字母开始,后面接字母、下划线或@符 
    Atom也可以用单引号括起来,这样就可以使用大写字母开头或带空格等的Atom 


    Tuple 
    Tuple用来将一些元素分组,它使用大括号将元素括起来,并用逗号隔开 
    Tuple类似于C里的structs,但Tuple是匿名的,而且Tuple里的fields没有名字 
    Tuple里的items可以为任何类型,Tuple可以嵌套 
    推荐做法是Tuple的第一个元素为一个Atom,这样可以清楚的描述该Tuple
    erlang代码
    1. 1> Person = {person,      
    2.                {name, joe},      
    3.                {height, 1.82},      
    4.                {footsize, 42},      
    5.                {eyecolour, brown}}.    
     
     Erlang也是有垃圾回收机制的,不用的内存会自动回收 
    取Tuple的值:
    erlang代码
    1. 1> Point = {point, 10, 45}.      
    2. {point, 10, 45}      
    3. 2> {point, X, Y} = Point.      
    4. {point, 10, 45}      
    5. 3> X.      
    6. 10     
    7. 4> Y.      
    8. 45    
     
    也可以用匿名变量“_”作为占位符放在不想取值的地方: 
    erlang代码
    1. 5> {_, _, A} = Point.      
    2. {point, 10, 45}      
    3. 6> A.      
    4. 45    

    List 
    List用来存放多个元素,它用中括号将元素括起来,并用逗号隔开 
    List左边第一个元素我们称为head,剩下的元素组成的List称为tail 
    例如对[1,2,3,4,5],head为1,tail为[2,3,4,5] 
    如果T为一个List,则[H|T]也是一个List,head为H,tail为T 

    从List取值的方法: 
    erlang代码
    1. 1> L = [1,2,3,4,5].      
    2. [1,2,3,4,5]      
    3. 2> [A1|Rest] = L.      
    4. [1,2,3,4,5]      
    5. 3> A1.      
    6. 1     
    7. 4> Rest.      
    8. [2,3,4,5]      
    9. 5> [A2,A3|TheRest] = L.      
    10. [1,2,3,4,5]      
    11. 6> A2.      
    12. 1     
    13. 7> A3.      
    14. 2     
    15. 8> TheRest.      
    16. [3,4,5]    

    字符串 
    Erlang里字符串必需用双引号括起来 
    Erlang的字符串使用Latin-1(ISO-8859-1)字符集
  • 相关阅读:
    3.4
    3.3 TensorFlow运行模型 ------- 会话
    3.2 TensorFlow数据模型 ---- 张量
    3.1 TensorFlow计算模型 --- 计算图
    寻找两个有序数组的中位数
    最长子串
    vector的遍历删除
    超时空大决战
    面经七
    面经五
  • 原文地址:https://www.cnblogs.com/wuxi/p/3145342.html
Copyright © 2020-2023  润新知