我有两个结构。第一个只有原始类型,第二个有第一个类型和另一个基本类型。我的问题是当我尝试创建第二个的新实例时。这是我的示例代码:
struct Jugador{
var nombre:String=""
var posicion:String=""
var dorsal:Int=0
//Constructor
init(nombre:String,posicion:String,dorsal:Int){
self.nombre=nombre
self.posicion=posicion
self.dorsal=dorsal
}
}
struct Equipo{
//variable estatica registrar equipo
static var registrar:Int=0
var nombre:String=""
var estadio:String=""
var jugadores:[Jugador]=[Jugador]()
//Constructor con jugadores
init(nombre:String,estadio:String,jugadores:[Jugador]){
self.nombre=nombre
self.estadio=estadio
self.jugadores=jugadores
//al crear un equipo lo registro
Equipo.registrarEquipo()
}
//funcion que registra a un equipo
static func registrarEquipo(){
registrar+=1
}
}
var jugador1=Jugador(nombre:"portero",posicion:"portero",dorsal:1)
var jugador2=Jugador(nombre:"lateral",posicion:"defensa",dorsal:2)
var jugadores1=[jugador1,jugador2]
var equipo1=Equipo(nombre:"equipo1",estadio:"estadio1",jugadores:jugadores1)
抱歉,我的错误在这一行:
var equipo1=Equipo(nombre:"equipo1",estadio:"estadio1",jugadores:jugadores1)
这是消息 源文件中的字符无效
很抱歉西班牙语的名字和评论,这只是我要学习结构
的一个例子答案 0 :(得分:0)
我已经验证了您的结果,但它给出了正确的结果。查找屏幕截图
以下是代码段:
struct Jugador{
var nombre:String
var posicion:String
var dorsal:Int
//Constructor
init(nombre:String,posicion:String,dorsal:Int){
self.nombre=nombre
self.posicion=posicion
self.dorsal=dorsal
}
}
struct Equipo{
//variable estatica registrar equipo
static var registrar:Int=0
var nombre:String=""
var estadio:String=""
var jugadores:[Jugador]=[Jugador]()
//Constructor con jugadores
init(nombre:String,estadio:String,jugadores:[Jugador]){
self.nombre=nombre
self.estadio=estadio
self.jugadores=jugadores
//al crear un equipo lo registro
Equipo.registrarEquipo()
}
//funcion que registra a un equipo
static func registrarEquipo(){
registrar+=1
}
}
var jugador1 = Jugador(nombre:"portero",posicion:"portero",dorsal:1)
var jugador2 = Jugador(nombre:"lateral",posicion:"defensa",dorsal:2)
var jugadores1 = [jugador1,jugador2]
var equipo1 = Equipo(nombre:"equipo1",estadio:"estadio1",jugadores:jugadores1)
print(equipo1)
这是Playground的输出。在Swift 3.1中执行它
Equipo(nombre: "equipo1", estadio: "estadio1", jugadores: [__lldb_expr_7.Jugador(nombre: "portero", posicion: "portero", dorsal: 1), __lldb_expr_7.Jugador(nombre: "lateral", posicion: "defensa", dorsal: 2)])
答案 1 :(得分:0)
“源文件中的无效字符”错误与您的代码无关。大多数情况下,它是由一个不可见的字符(非破坏空间)引起的,你通过按选项+空格意外键入。在非美国键盘上(在我的情况下是法语,在你的是西班牙语),你经常需要使用选项键来访问一些特殊字符。当您快速键入时,这有时会导致您在释放选项键之前按空格键。
我找到了解决方法。请参阅此帖子:http://stackoverflow.com/a/34696032/5237560
简而言之,我将Option + Space快捷方式重新配置为不会在源文件中生成任何字符的内容。
答案 2 :(得分:-1)
您的代码真的难以阅读。您应该考虑遵循普遍接受的最佳实践并添加一些间距。除此之外,您的代码原则几乎是正确的。
就我而言,Structs通常不会被改变,所以如果你不需要改变它们,你也应该考虑使用内部变量。这是一个例子:
request.host()