”using” 和”import” 的区别是
只有一个区别,并且在表面上(语法层面)这个区别看来很小。 using 和 import 的区别是使用 using 时你需要写 function Foo.bar(.. 来用一个新方法来扩展模块 Foo 的函数 bar,但是使用 import Foo.bar 时,你只需要写 function bar(...,会自动扩展模块 Foo 的函数 bar。这个区别足够重要以至于提供不同的语法的原因是你不希望意外地扩展一个你根本不知道其存在的函数,因为这很容易造成 bug。对于使用像字符串后者整数这样的常用类型的方法最有可能出现这个问题,因为你和其他模块都可能定义了方法来处理这样的常用类型。如果你使用 import,你会用你自己的新实现覆盖别的函数的 bar(s::AbstractString) 实现,这会导致做的事情天差地别(并且破坏模块 Foo 中其他的依赖于调用 bar 的函数的所有/大部分的将来的使用)
问题1:很多时候是引用的问题
UndefVarError: dataset not defined
top-level scope at JuliaDBTest:50Pkg
Pkg.add("dataset ")
问题2:错误:
UndefVarError: groupby not defined
top-level scope at JuliaDBTest:49
或者告警:
WARNING: both RDatasets and JuliaDB export "groupby"; uses of it in module Main must be qualified
解决方法:通过import指定模块的函数
import JuliaDB: pkeynames, pkeys, excludecols, select, transform,groupby
问题3:WARNING: could not import DataFramesMeta.@groupby into Main
解决方法:
去掉@符号用 groupby