https://speakerdeck.com/gwengrid/keep-calm-and-type-erase-on
Step-By-Step, writing a type-erased wrapper class by Hector Matos
Why?! No type parameters on generic protocols pt 1 pt 2 by Russ Bishop
| #! python | |
| import random | |
| def print_board(board, size): | |
| for j in range(0, size): | |
| marker = "" | |
| for i in range(0, size): | |
| saved = board.get((i, j)) | |
| if saved: | |
| marker += saved + " " |
https://speakerdeck.com/gwengrid/keep-calm-and-type-erase-on
Step-By-Step, writing a type-erased wrapper class by Hector Matos
Why?! No type parameters on generic protocols pt 1 pt 2 by Russ Bishop
| #! python | |
| for i in range(1, 101): | |
| string = "" | |
| if i % 3 == 0: | |
| string += "Crackle" | |
| if i % 5 == 0: | |
| string += "Pop" | |
| if not len(string): | |
| string += str(i) |
| class Thunder { } | |
| class Fire { } | |
| protocol Pokemon { | |
| typealias PokemonType | |
| func attack(move:PokemonType) | |
| } | |
| struct Pikachu: Pokemon { | |
| typealias PokemonType = Thunder |
| #!/usr/bin/env python | |
| from models.project impport Project | |
| all_projects = Project().find() | |
| for project in all_projects: | |
| for sheet in project: | |
| upload_group = Upload().find('uid':sheet['upload']) | |
| change_set = get_change_set(publish_date, order) | |
| if not change_set: |