zoukankan      html  css  js  c++  java
  • learning scala generic classes

    package com.aura.scala.day01
    
    object genericClasses {
      def main(args: Array[String]): Unit = {
        val stack = new Stack[Int]
        stack.push(1)
        stack.push(2)
        println(stack.pop())
        println(stack.pop())
      }
    }
    
    class Stack[A] {
      private var elements: List[A] = Nil
      def push(x: A){ elements = x :: elements }
      def peek():A = elements.head
      def pop():A = {
        val currentTop = peek()
        elements = elements.tail
        currentTop
      }
    }

    result:

    "D:Program FilesJavajdk1.8.0_201injava.exe" "-javaagent:D:Program FilesJetBrainsIntelliJ IDEA 2019.1.3libidea_rt.jar=11061:D:Program FilesJetBrainsIntelliJ IDEA 2019.1.3in" -Dfile.encoding=UTF-8 -classpath "D:Program FilesJavajdk1.8.0_201jrelibcharsets.jar;D:Program FilesJavajdk1.8.0_201jrelibdeploy.jar;D:Program FilesJavajdk1.8.0_201jrelibextaccess-bridge-64.jar;D:Program FilesJavajdk1.8.0_201jrelibextcldrdata.jar;D:Program FilesJavajdk1.8.0_201jrelibextdnsns.jar;D:Program FilesJavajdk1.8.0_201jrelibextjaccess.jar;D:Program FilesJavajdk1.8.0_201jrelibextjfxrt.jar;D:Program FilesJavajdk1.8.0_201jrelibextlocaledata.jar;D:Program FilesJavajdk1.8.0_201jrelibext
    ashorn.jar;D:Program FilesJavajdk1.8.0_201jrelibextsunec.jar;D:Program FilesJavajdk1.8.0_201jrelibextsunjce_provider.jar;D:Program FilesJavajdk1.8.0_201jrelibextsunmscapi.jar;D:Program FilesJavajdk1.8.0_201jrelibextsunpkcs11.jar;D:Program FilesJavajdk1.8.0_201jrelibextzipfs.jar;D:Program FilesJavajdk1.8.0_201jrelibjavaws.jar;D:Program FilesJavajdk1.8.0_201jrelibjce.jar;D:Program FilesJavajdk1.8.0_201jrelibjfr.jar;D:Program FilesJavajdk1.8.0_201jrelibjfxswt.jar;D:Program FilesJavajdk1.8.0_201jrelibjsse.jar;D:Program FilesJavajdk1.8.0_201jrelibmanagement-agent.jar;D:Program FilesJavajdk1.8.0_201jrelibplugin.jar;D:Program FilesJavajdk1.8.0_201jrelib
    esources.jar;D:Program FilesJavajdk1.8.0_201jrelib
    t.jar;C:UsersadminIdeaProjectsScalaDayoutproductionScalaDay;C:Program Files (x86)scalalibscala-actors-2.11.0.jar;C:Program Files (x86)scalalibscala-actors-migration_2.11-1.1.0.jar;C:Program Files (x86)scalalibscala-library.jar;C:Program Files (x86)scalalibscala-parser-combinators_2.11-1.0.4.jar;C:Program Files (x86)scalalibscala-reflect.jar;C:Program Files (x86)scalalibscala-swing_2.11-1.0.2.jar;C:Program Files (x86)scalalibscala-xml_2.11-1.0.4.jar" com.aura.scala.day01.genericClasses
    2
    1

    实例对象 stack 只能接受整型值。然而,如果类型参数有子类型,子类型可以被传入:

    class Fruit
    class Apple extends Fruit
    class Banana extends Fruit
    
    val stack = new Stack[Fruit]
    val apple = new Apple
    val banana = new Banana
    
    stack.push(apple)
    stack.push(banana)
  • 相关阅读:
    iPad----------教你如何查询ipad型号
    博客园:教你如何给一篇博客加入外链
    Github:failed to add file / to index
    iOS----------教你如何使用 GitHub Desktop
    iOS----------调用系统照相机和相册
    iOS 10 设备权限问题(相机,相册等)
    iOS----------UITextField实现过滤选中状态拼音
    【2020Python修炼记】MySQL之 数据备份、pymysql模块
    【2020Python修炼记】MySQL之 SQL查询应用
    【CMD的使用技巧与语法】
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/11164774.html
Copyright © 2011-2022 走看看