我在Scala 2.7.5中编写了一个相当大的程序,现在我期待2.8版本.但我很好奇Scala演变的这一重大飞跃将如何影响我.
这两个版本的Scala之间最大的区别是什么?也许最重要的是:
我通常希望尽可能保持代码的通用性.我目前正在编写一个简单的库,并且能够在我的库中使用不同的类型,这次感觉非常重要.
一种方法是强制人们继承"接口"类.对我来说,这感觉更像是Java而不是Python,并且issubclass在每种方法中使用也听起来不太诱人.
我首选的方法是善意使用该物品,但这会引起一些AttributeErrors.我可以在try/except块中包装每个危险的调用.这也是一件很麻烦的事情:
def foo(obj):
...
# it should be able to sleep
try:
obj.sleep()
except AttributeError:
# handle error
...
# it should be able to wag it's tail
try:
obj.wag_tail()
except AttributeError:
# handle this error as well
Run Code Online (Sandbox Code Playgroud)
我是否应该跳过错误处理并期望人们只使用具有所需方法的对象?如果我做了一些愚蠢的事情,比如[x**2 for x in 1234]我实际上得到了一个TypeError而不是一个AttributeError(整数不可迭代)所以必须在某个地方进行一些类型检查 - 如果我想做同样的事情怎么办?
这个问题将是开放式的,但是以干净的方式处理上述问题的最佳方法是什么?有没有既定的最佳实践?例如,上面的可迭代"类型检查"是如何实现的?
虽然AttributeErrors很好,但TypeErrors本机函数引发的函数通常会提供有关如何解决错误的更多信息.以此为例:
>>> ['a', 1].sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable …Run Code Online (Sandbox Code Playgroud) 如果你想在Django中存储关于用户(django.contrib.auth.models.User)的额外信息,你可以使用漂亮的AUTH_PROFILE_MODULE来插入"profile"模型.然后每个用户获取一个配置文件 这一切都在这里描述:
现在,假设我已经使用名为UserProfile的模型创建了一个名为accounts的应用程序,并将其注册为我的用户的配置文件模型.如何在管理界面中内联编辑配置文件以编辑用户(反之亦然)?
我最近遇到了以下代码片段
$count_stuff{$_}++ for @stuff;
Run Code Online (Sandbox Code Playgroud)
例如,使用哈希来计算数组中字符串的出现是一种非常方便的方法.我理解它是如何工作的,但不是为什么它有效.我无法找到使用这种方式的文档进行.
它为什么有效?文档在哪里?
这种行为让我很困惑.似乎我ENV或我的配置的内容缓存在某个地方.以下是如何重现它:
在一个新的应用程序(我使用Ruby 2.0.0和Rails 4.2.1)中,编辑application.rb:
$ cat config/application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)
module Myapp
class Application < Rails::Application
config.active_record.raise_in_transactional_callbacks = true
config.env_foo = ENV['FOO']
end
end
Run Code Online (Sandbox Code Playgroud)
配置项env_foo现在是nil:
$ unset FOO # make sure FOO is unset
$ rails console
Loading development environment (Rails 4.2.1)
2.0.0-p598 :001 > Rails.application.config.env_foo
=> nil
Run Code Online (Sandbox Code Playgroud)
设置一些环境变量,看看会发生什么:
$ export FOO=barbapapa
$ rails console
Loading development environment (Rails 4.2.1)
2.0.0-p598 :001 > Rails.application.config.env_foo
=> nil
2.0.0-p598 :002 > …Run Code Online (Sandbox Code Playgroud) 在我正在进行的项目中,我有一个决策问题,我的尝试都没有给出令人满意的结果:使用领域特定知识,尝试生成统计数据和创建统计模型等.
我有关于神经网络的基本知识,现在我想尝试一下,如果这种方法可能产生一些好的结果.我有很多数据,所以我想要的只是建立一个简单的NN,训练它,看看我得到了什么.
你知道任何可能用于此目的的Perl模块吗?我找到了一些,但我不想浪费时间尝试所有这些.
我之前使用该KEYS命令来搜索与Redis数据库中的某个模式匹配的密钥.从Redis 2.8开始,SCAN命令似乎是首选,KEYS因为它返回迭代器而不是一次扫描整个键空间.
我正在使用Predis > = 0.8.5,它应该支持该SCAN命令的PHP迭代器.Predis没有很多文档,所以我想知道如何将以下KEYS命令转换为它的SCAN对应物:
$client->keys($pattern)
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
$client->scan('MATCH', $pattern);
Run Code Online (Sandbox Code Playgroud)
哪种工作 - 但它不返回本机PHP迭代器.使用Predis的内置迭代器支持会非常好.
Vue:第2版。*
在我的项目vuejs中,我将v-for范围与计算
已计算
computed: {
numberOfPages() {
const result = Math.ceil(this.collection.total / this.collection.per_page)
return (result < 1) ? 1 : result
}
},
Run Code Online (Sandbox Code Playgroud)
模板
<li class="waves-effect" v-for="(number,index) in numberOfPages"
:key="index" :class="collection.current_page == number ? 'active' : ''"
@click="currentPage(number)">
<a class="">{{number}}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
错误控制台
1- [Vue warn]: Error in render: "RangeError: Invalid array length"
2- RangeError: Invalid array length
我正在学习Java,而且我正在阅读关于hex String literals的书籍章节.它告诉我,我可以用这种格式创建一个十六进制字符串文字:"\ uxxxx".所以我尝试了这个:
char c = '\u0010';
int x = c;
System.out.println(x); // prints 16.
Run Code Online (Sandbox Code Playgroud)
首先,为什么以下的十六进制字符串文字会导致编译错误?我期待十六进制中的'a'等于十进制10.
char c = '\u000a';
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
..\src\pkgs\main\Main.java:360: error: illegal line end in character literal
char c = '\u000a';
Run Code Online (Sandbox Code Playgroud)
其次,由于我的新手Java状态,我目前无法理解使用的是十六进制字符串文字.我为什么要使用一个?有人可以请我提供他们使用的"真实世界"示例吗?非常感谢.
以下python代码抛出此错误消息,我不知道为什么,我的选项卡似乎排成一行:
File "test.py", line 12
pass
^ TabError: inconsistent use of tabs and spaces in indentation
Run Code Online (Sandbox Code Playgroud)
我的代码:
class eightPuzzle(StateSpace):
StateSpace.n = 0
def __init__(self, action, gval, state, parent = None):
StateSpace.__init__(self, action, gval, parent)
self.state = state
def successors(self) :
pass
Run Code Online (Sandbox Code Playgroud) perl ×2
python ×2
django ×1
django-admin ×1
django-users ×1
duck-typing ×1
hex ×1
indentation ×1
java ×1
module ×1
oop ×1
php ×1
predis ×1
python-3.x ×1
redis ×1
ruby ×1
scala ×1
syntax ×1
types ×1
v-for ×1
vue.js ×1