• 元组——秃瓢(Tuple)


    元组在编程里面出现最早是在函数式语言。而现在python、C#、VB.net、Java、Go等等已经广泛应用。元组有如下特性:
    1、元组里面的成员都是只读的。
    2、元组成员支持泛型,甚至可以衔套另一个元组。 

     元组刚引入C#的时候,大多数人都把它当作out的语法糖。然而,它有自身存在的意义。作为函数的多返回值的时候,相对out而言,除了可读性更佳,元组以其不可变值的特性,贯彻了“使用不变值,尽可能避免使用变量”,这一函数式编程的原则——呃...与其这样说,不如说是out直接破坏了这个原则。

    另外,元组也可以当成简单的结构来使用,在不能使用匿名结构,又不想声明一个有名字结构的时候,元组是折中、便捷的方法。

    然而作为一种外来的方法,C#上面使用元组就不像F#那么自然,(VB以及Java亦然)。 

    F#:

    let (a,b) = (15, 16)
    Debug.WriteLine("a={0} b={1}", a, b) 


    C#:
    var t = 
    Tuple.Create(15, 16);
    Debug.WriteLine("a={0} b={1}", t.Item1, t.Item2) ;

    以上两代码等价,然而F#可以在使用元组的时候对个别元素进行命名,而C#只能调用其中的Item1、Item2。 

    元组在F#和C#之间的区别不仅如此,原生F#支持2个以上的成员,而C#上,元组只能靠.net的Tuple类实现,有1到8个成员的限制。1个成员的元组是很奇怪的,它根本没有什么实际意义。在F#上,
    let a = (19)
    或者
    let (a) = (19)
    都无法得到一个单一元素的元组,只能靠.net框架,或者其他间接方法。

  • 相关阅读:
    Pandas包对多个数据表(DataFrame)的常用整合功能。
    pandas numpy 简单应用 loandata
    榛果 美团 登录 爬虫 requests session
    python 日期循环
    opencv 验证码 识别
    运行MapReduce任务
    CenOS安装MySQL服务
    leetcode 67. 二进制求和
    最近对一些领域比较感兴趣,这里列举出来供以后查阅
    leet code 1014. 最佳观光组合
  • 原文地址:https://www.cnblogs.com/greatim/p/3660418.html
Copyright © 2020-2023  润新知