我正在运行Scala 2.10.2.我想创建一个列表,然后在列表中添加一些元素,并期望在调用列表名称时查看列表中的所有元素.但我观察到一些非常奇怪的东西(因为我是新手,至少对我来说很奇怪).以下是我试图做的事情sbt console
scala> val l = 1.0 :: 5.5 :: Nil
l: List[Double] = List(1.0, 5.5)
scala> l
res0: List[Double] = List(1.0, 5.5)
scala> l ::: List(2.2, 3.7)
res1: List[Double] = List(1.0, 5.5, 2.2, 3.7)
scala> List(l) :+ 2.2
res2: List[Any] = List(List(1.0, 5.5), 2.2)
scala> l
res3: List[Double] = List(1.0, 5.5)
scala>
Run Code Online (Sandbox Code Playgroud)
首先,我创建了l包含2个元素(1.0和5.5)的列表.我打电话l给我所期待的; 这两个要素.现在我尝试在列表中添加另一个元素,使用:::该元素返回一个新列表,其中包含我添加的新元素列表(2.2和3.7)Sweet!我甚至检查了别人的代码以寻求帮助:在Scala的列表末尾添加一个元素以使用新的构造:+.所以在这个阶段我很高兴,但我打电话给l我意外:`res3:List [Double] = List(1.0,5.5)'.
我添加的元素在哪里?我如何正确添加这些元素,以便在我打电话时l获得一个包含我添加的所有内容的新列表?
如果你在这里查看我的应用程序:http://quiet-brushlands-5712.herokuapp.com/,靠近按钮的是一个图标,一个glyphicon.但它没有出现在heroku上.在本地它显示如下:

我从这里尝试了"解决方案" 使用Rails生产中的boostrap.css文件/没有LESS或SASS以及Google中的其他链接.我也需要字形在Heroku上显示.有帮助吗?
我没有手动下载Twitter Bootstrap,我只是使用了一个gem.在我的Javascript控制台中,我有这个:
GET http://quiet-brushlands-5712.herokuapp.com/assets/glyphicons-halflings.png 404 (Not Found)
我的Gemfile如果有帮助:
source 'https://rubygems.org'
gem 'rails', '4.0.2'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '2.0.0'
gem 'jbuilder', '~> 1.2'
gem 'bootstrap-sass', '2.1'
gem 'jquery-ui-rails', '4.1.0'
gem 'pg'
gem 'font-awesome-rails', '4.0.3.0'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :development, :test do
gem 'rspec-rails', '2.11.0'
gem …Run Code Online (Sandbox Code Playgroud) 我是一个相对较新的Rails程序员,当我尝试预编译资产(有时甚至运行服务器)时,我收到此错误:
TypeError: couldn't digest ActiveSupport::StringInquirer
/Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/digest_utils.rb:83:in `digest'
/Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:55:in `block in load'
/Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:312:in `block in fetch_asset_from_dependency_cache'
org/jruby/RubyArray.java:1560:in `each'
org/jruby/RubyEnumerable.java:1016:in `each_with_index'
/Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:308:in `fetch_asset_from_dependency_cache'
/Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:44:in `load'
Run Code Online (Sandbox Code Playgroud)
...
我已经尝试在开发中关闭摘要,并尝试使用RAILS_ENV指向开发的标志运行rake任务,但没有结果.
我试过在谷歌上看这个问题,似乎找不到任何相关的东西.
我跑jRuby 9.0.5.0和rails 4.2.5.2.
我正在学习我大学的编程范例,并阅读讲师提供的这门课程材料:
val double = (x: Int) => 2 * x
double: Int => Int = <function1>
Run Code Online (Sandbox Code Playgroud)
但是从我自己的研究中我发现并习惯于定义相同的函数:
def d (x: Int) = 2 * x
d: (x: Int)Int
Run Code Online (Sandbox Code Playgroud)
我是Scala的新手.这两个定义都给出了以下结果:
res21: Int = 8
Run Code Online (Sandbox Code Playgroud)
在4作为参数传递时.现在我的主要问题是为什么讲师更喜欢val用来定义一个函数?我认为它更长,并不是真正必要的,除非使用val提供了一些我不知道的额外优势.除了我理解使用val使一些名称占位符所以稍后在程序中,我可能会错误地写val double = 5,功能将消失!在这个阶段,我非常确信我学会了一种更好的定义函数的方法,除非有人告诉我.
我正在尝试向我的Rails应用程序提交一个简单的表单.我迷失了自己,没有任何工作.这是我试图做的:
var newUserForm = React.createClass({
propTypes: {
user: React.PropTypes.array
},
getInitialState: function() {
return {name: '', age: '', country: '' };
},
handleNameChange: function(e) {
this.setState({ name: e.target.value });
},
handleAgeChange: function(e) {
this.setState({ age: e.target.value });
},
handleCountryChange: function(e) {
this.setState({ country: e.target.value });
},
handleSubmit: function(e) {
e.preventDefault();
var name = this.state.name.trim();
var age = this.state.age.trim();
var country = this.state.country.trim();
if (!name || !age || !country) {
return;
}
this.setState({ name: '', age: '', country: '' });
var …Run Code Online (Sandbox Code Playgroud) 我有2个型号,Microspost并且User:
class Micropost < ActiveRecord::Base
belongs_to :user
default_scope -> { order(created_at: :desc) }
validates :user_id, presence: true
validates :content, presence: true, length: { maximum: 140 }
end
class User < ActiveRecord::Base
has_many :microposts, dependent: :destroy
attr_accessor :remember_token, :activation_token, :reset_token
before_save :downcase_email
before_create :create_activation_digest
validates :name, presence: true, length: { maximum: 50 }
end
Run Code Online (Sandbox Code Playgroud)
seed.rb :
User.create!(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar",
admin: true,
activated: true,
activated_at: Time.zone.now)
99.times do |n|
name = Faker::Name.name …Run Code Online (Sandbox Code Playgroud) 我试图定义一个类
abstract class Sequence[+A] {
def append (x: Sequence[A]): Sequence[A]
}
Run Code Online (Sandbox Code Playgroud)
并进入了终端
<console>:8: error: covariant type A occurs in contravariant position in type Sequence[A] of value x
def append (x: Sequence[A]): Sequence[A]
Run Code Online (Sandbox Code Playgroud)
为什么这个定义没有问题,解决这个问题的最佳方法是什么?我检查了这个协变类型T发生在逆变位置,但对我没有任何帮助.
我正在尝试Java中的一些在线练习.我做了很多练习,但是如果n = 4的话,我会坚持使用一个给出给定n(其中n是来自用户输入)的练习,绘制一个如下所示的圣诞树:
X
X
XXX
X
XXX
XXXXX
X
XXX
XXXXX
XXXXXXX
Run Code Online (Sandbox Code Playgroud)
我似乎无法绕过循环.这是我到目前为止所做的:
public class Test {
public double org, mes;
public Test() {
}
private static void drawChristmasTree(int n) {
if (n == 1) {
System.out.println("X");
} else {
for (int p = 1; p <= n; p++) {
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n - i; j++) {
System.out.print(" ");
}
for (int j = …Run Code Online (Sandbox Code Playgroud) 我正在读一些笔记,并且遇到了这段代码,对我来说看起来很干净:
# let sigma f m =
let rec sum (i, z) =
if i = m then z else sum(i+1, z+.f i)
in sum(0, 0.0);;
val sigma : (int -> float) -> int -> float = <fun>
# sigma (function k -> float (k*k)) 10;;
- : float = 285.
Run Code Online (Sandbox Code Playgroud)
我理解除了那里的部分以外的每一点in sum(0, 0.0).那么问题实际上并不是in关键字,而是:sum(0, 0.0).这是什么意思,为什么这个功能有用呢?我做了一些谷歌搜索,并in从Ocaml网站上获得了关键字,但这对我没有意义.这是我发现的:
class-expr ::= class-path
? [ typexpr {, typexpr} ] class-path
? ( class-expr )
? ( class-expr …Run Code Online (Sandbox Code Playgroud) 假设我有一个像"MikeJackson"这样的字符串,我试图找到一种方法在两者之间放置一个空间,所以它变成了"迈克杰克逊".然后将相同的方法应用于另一个字符串,说"JohnBull"会让我回到"John Bull".这是我提出的代码:
public class Test{
public Test(){
}
public void sep(String s){
s = s + " ";
char[] charArray = s.toCharArray();
int l = s.length();
for (int i = 0; i < l; i++){
char p = ' ';
if(Character.isUpperCase(s.charAt(0))){
continue;
}
else if (Character.isUpperCase(s.charAt(i))){
int k = s.indexOf(s.charAt(i));
charArray[l] = charArray[--l];
charArray[k-1] = p;
}
//System.out.println(s.charAt(i));
}
}
public static void main (String args[]){
Test one = new Test();
one.sep("MikeJackson");
}
}
Run Code Online (Sandbox Code Playgroud)
我的想法是在String中添加一个空格,以便"MikeJackson"成为"Mike Jackson",然后将字符向右移动(检查我找到大写的位置)忽略第一个大写字母.然后将一个字符''代替字符'J',但将'J'移到右边.这就是我试图用我的方法实现的,但看起来我需要一些指导.如果有人可以帮忙.谢谢.