Явное объявление типа переменной в Python

У Swift есть методы экземпляра и методы типа. Метод экземпляра - это метод, который вызывается из определенного экземпляра класса. Метод Type - это статический метод, который вызывается из самого класса.

Методы экземпляра

Метод экземпляра будет выглядеть примерно так:

class StudentList {

    func allStudents() -> [String] {
      ....
    }
}

Для вызова метода allStudents необходимо инициализировать класс StudentsList первый.

let list = StudentsList() // initialize the class
let all = list.allStudents() // call a method on the class instance

Попытка вызова метода экземпляра для самого класса дает ошибку.

Методы типа

Методы типа являются статическими методами, которые принадлежат классу, а не экземпляру класса. Как упоминалось в комментариях к ответу @ AnthodyKong, метод Type можно создать с помощью ключевых слов class или static перед func. Классы передаются по ссылке, а структуры передаются по значению, поэтому они известны как ссылочный тип и тип значения. Вот как они будут выглядеть:

Тип ссылки

class StudentList {

    class func allStudents() -> [String] {
      ....
    }
}

Тип значения

struct StudentList {

    static func allStudents() -> [String] {
      ....
    }
}

] Вызовите с

let all = StudentList.allStudents()

Поскольку allStudents является методом типа, класс (или структура) не нужно сначала инициализировать.

См. Также

13
задан orftz 31 May 2011 в 04:27
поделиться