在()中包装类型的内容是什么以及何时应该使用它? Golang

时间:2015-09-06 05:24:17

标签: go

在()中包装类型的确切内容是什么,我何时应该使用它?例如。 import pygame pygame.init() white = (255,255,255) black = (0,0,0) red = (255,0,0) gameDisplay = pygame.display.set_mode((800,600)) pygame.display.set_caption('Slither') gameExit = False lead_x = 300 lead_y = 300 lead_x_change = 0 lead_y_change = 0 clock = pygame.time.Clock() while not gameExit: for event in pygame.event.get(): if event.type == pygame.QUIT: gameExit = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: lead_x_change = -10 lead_y_change = 0 elif event.key == pygame.K_RIGHT: lead_x_change = 10 lead_y_change = 0 elif event.key == pygame.K_UP: lead_y_change = -10 lead_x_change = 0 elif event.key == pygame.K_DOWN: lead_y_change = 10 lead_x_change = 0 if event.type == pygame.MOUSEMOTION: lead_y_change = 0 lead_x_change = 0 print(event) lead_x += lead_x_change lead_y += lead_y_change gameDisplay.fill(white) gameDisplay.fill(black, rect=[lead_x,lead_y,10,10]) gameDisplay.fill(red, rect=[200,200,10,10]) pygame.display.update() clock.tick(15) pygame.quit() quit()

1 个答案:

答案 0 :(得分:4)

它是type assertion。类型断言用于将接口类型中的值提取为其他类型。

表达式blah.(*int)断言blah中的值类型为*int。如果断言成立,则表达式的值是blah中存储为*int的值。如果断言不成立,则表达式出现恐慌。

可以在赋值中使用特殊形式的类型断言来测试断言:

 ip, ok := blah.(*int)

如果blah中的值为*int,则该值存储在ip中,ok设置为true。否则,ip设置为零值,ok为false。