zoukankan      html  css  js  c++  java
  • 泛型术语:占位类型placeholder

    Here’s a generic version of the same code:

    1. struct Stack<Element> {
    2. var items = [Element]()
    3. mutating func push(_ item: Element) {
    4. items.append(item)
    5. }
    6. mutating func pop() -> Element {
    7. return items.removeLast()
    8. }
    9. }

    Note how the generic version of Stack is essentially the same as the nongeneric version, but with a type parameter called Element instead of an actual type of Int. This type parameter is written within a pair of angle brackets (<Element>) immediately after the structure’s name.

    Element defines a placeholder name for a type to be provided later. This future type can be referred to as Element anywhere within the structure’s definition. In this case, Element is used as a placeholder in three places:

    • To create a property called items, which is initialized with an empty array of values of type Element
    • To specify that the push(_:) method has a single parameter called item, which must be of type Element
    • To specify that the value returned by the pop() method will be a value of type Element

    https://docs.swift.org/swift-book/LanguageGuide/Generics.html

    Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.

    template<typename T>
    class List
    {
       /* class contents */
    };
    
    List<Animal> list_of_animals;
    List<Car> list_of_cars;
    

    Above, T is a placeholder for whatever type is specified when the list is created.

    https://en.wikipedia.org/wiki/Generic_programming

  • 相关阅读:
    蒟蒻的sb对拍方法
    LuoguP5176 公约数 题解
    天守阁的地板 题解
    Crash的数字表格 / JZPTAB 题解
    于神之怒加强版 简要题解
    最小公倍数之和 题解
    莫比乌斯反演的计算
    YY的GCD 题解
    acwing 309装饰围栏 大致思路 (预览)
    错排问题(预览)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9757568.html
Copyright © 2011-2022 走看看