【问题标题】:EOF error requiring file when compiling编译时需要文件的 EOF 错误
【发布时间】:2018-03-01 07:20:31
【问题描述】:

所以我目前有当前的目录结构:

- project
  - lib
    - struct
      - external
        - external.cr
  - src
    - project
      - version.cr
    - project.cr
  - ...
  - shard.yml

我目前正在使用当前命令编译我的代码,同时在主项目目录(包含 shard.yml)中:

`crystal src/project.cr`

I then receive the following error:

Error in src/project.cr:2: while requiring "struct/external"

require "struct/external"
^

Syntax error in lib/struct/external/external.cr:15: expecting identifier 'end', not 'EOF'

我的 project.cr 文件如下所示:

require "./project/*"
require "struct/external"

# Doc omitted 
module Project
    extend self
end

我的 external.cr 文件如下所示:

#
class External
    def initialize(@vertices : Array(SubclassOne), @edges : Array(SubclassTwo))
end

#
class SubclassOne
    def initialize()
end

#
class SubclassTwo
    def initialize()
end

【问题讨论】:

  • 方法定义的末尾应该有enddef initialize(); end

标签: crystal-lang


【解决方案1】:

外部文件中类中的函数缺少 end 关键字。

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2021-10-20
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多