前几天我正在用Java帮助一个朋友,他们问的是Enums.我解释了C语法(类似的东西)
enumeration Difficulty{
BEGINNER= 1;
PRO=5;
EXPERT = 11;
}
Run Code Online (Sandbox Code Playgroud)
不是要走的路,Java语法是something(1);你做了一个接受一个int的构造函数然后做了这个和那个......等等.
但是他们阻止了我并且问道:"如果我们使用构造函数等等,为什么还要使用枚举,为什么不只是有一个新的类?"
我无法回答.那么为什么你会在这种情况下使用枚举,而不是一个类?
在这个梦想中,我可以取代以下构造:
if(aLongVariableName.equals(classInstance.aPropertyOfThatInstance) ||
aLongVariableName.equals(classInstance.aDifferentProperty)){
...
}
Run Code Online (Sandbox Code Playgroud)
同
if(aLongVariableName.equals(classInstance.aDifferentProperty || aPropertyOfThatInstance)){
...
}
Run Code Online (Sandbox Code Playgroud)
我认为后者更简洁,更容易阅读.我确信应该可以实现某些方法,因为可以用这种签名来声明方法,这种签名public void readUnlimitedVariables(Variable ... vars)采用逗号分隔的变量(而不是||甚至是&&).
这可以打开任何返回布尔值的东西,例如:
if(myLovelyInstance instanceof AwesomeClass && EpicClass){
...
}
Run Code Online (Sandbox Code Playgroud)
其中myLovelyInstance器具AwesomeClass && EpicClass
这在Java中可行吗?到目前为止,我还没有通过谷歌搜索或SO搜索到任何内容.如果它不是在Java中,那么是否有任何第三方软件包如Lombok或lambdaJ可以允许这样做?如果不是这样,如果这是任何语言的功能?这对我来说似乎很直观,但我没有在任何地方看到它.
我正在尝试弄清楚如何将字符串分成组。我认为该split(regex)方法本身还不够。
我已经String complexStatement = "(this && that)||(these&&those)||(me&&you)";并且想要一个具有这种形式的数组:
"(this && that)","(these&&those)","(me&&you)""
Run Code Online (Sandbox Code Playgroud)
如果有的"(5+3)*(2+5)+(9)"话我想要“(5+3)”、“(2+5)”、“(9)”。(如果您能以某种方式保留连接
信息,则可获得奖励积分,例如) *,+,||
这对于任意字符串输入可能吗?我正在使用 StringTokenizer,但我还没有完全掌握它。
我有一个任务类,可以有子任务,所以这是一个循环关系。我通过链接器模型/表传递它,如下所示:
class Task(models.Model):
title = models.CharField(max_length=100)
description = models.TextField(blank=True)
completed = models.BooleanField(default=False)
project = models.ForeignKey('Project', related_name="tasks")
dependancy = models.ManyToManyField('self', through='Dependancy', null=True,
blank=True, through_fields=('task', 'sub_task'), symmetrical=False)
def __str__(self):
return self.title
class Dependancy(models.Model):
task = models.ForeignKey(Task)
sub_task = models.ForeignKey(Task)
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
ERRORS:
gantt_charts.dependency.sub_task: (fields.E303) Reverse query name for 'dependency.sub_task' clashes with field name 'Task.dependency'.
HINT: Rename field 'Task.dependency', or add/change a related_name argument to the definition for field 'dependency.sub_task'.
gantt_charts.dependency.sub_task: (fields.E304) Reverse accessor for 'dependency.sub_task' clashes with reverse accessor for 'dependency.task'.
HINT: Add …Run Code Online (Sandbox Code Playgroud) 我尝试使用以下代码设置Cookie:
angular.module('myApp').controller('myController', ['$scope', '$http','$cookies', function ($scope, $http, $cookies) {
$scope.setMyCookie = function () {
$cookies.put('Mykey', 'MyValue');
};
$scope.setMyCookie();
}]);
Run Code Online (Sandbox Code Playgroud)
我更新到角度cookie的版本1.3.14,我知道有一个重大变化,但我现在应该怎么写上面的代码?
运行上面的代码我收到此错误: Error: $cookies.put is not a function
更新:我必须在2个文件中执行此操作:
var app = angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', '$httpProvider', function ($routeProvider, $httpProvider) {
}]);
angular.module('myApp', ['ngCookies']).controller('cookiesExample', ['$cookies', function ($cookies) {
// Retrieving a cookie
var favoriteCookie = $cookies.myFavorite;
// Setting a cookie
$cookies.myFavorite = 'oatmeal';
}]);
Run Code Online (Sandbox Code Playgroud) django 中的模型可以带有这样的元类:
class Address(models.Model):
"""Address model."""
class Meta:
"""Meta McMetaface."""
verbose_name = "Address"
verbose_name_plural = "Addresses"
address_line = models.CharField(max_length=256)
postcode = models.CharField(max_length=10)
def __str__(self):
"""Return address without post code."""
return self.address_line
Run Code Online (Sandbox Code Playgroud)
我的元类充其量是异想天开的。Python 或 Django 是否有元类的标准文本?
我一直在自学如何使用enzyme和测试 React 组件jest,但我对如何测试使用 React hooks 的已安装组件一无所知。
这是该组件的简化版本......
const [records, setRecords] = useState([]);
const onChange = async ({ value }) => {
try {
const request = await searchRecords();
console.log("Before setRecords");
setRecords(request.results);
console.log("After setRecords");
} catch (error) { /* error handling */ }
}
Run Code Online (Sandbox Code Playgroud)
测试代码看起来像...
let wrapped;
describe("Sample", () => {
beforeEach(() => {
jest.clearAllMocks();
wrapped = mount(
<Provider store={createStore(reducers, {})}>
<Sample />
</Provider>
);
api.mockImplementation(() => ({ results: searchResult }));
});
afterEach(() => { …Run Code Online (Sandbox Code Playgroud) 这是我的懒惰组件:
const LazyBones = React.lazy(() => import('@graveyard/Bones')
.then(module => ({default: module.BonesComponent}))
export default LazyBones
Run Code Online (Sandbox Code Playgroud)
我是这样导入的:
import Bones from './LazyBones'
export default () => (
<Suspense fallback={<p>Loading bones</p>}>
<Bones />
</Suspense>
)
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我有这样的事情:
import * as LazyBones from './LazyBones';
describe('<BoneYard />', function() {
let Bones;
let wrapper;
beforeEach(function() {
Bones = sinon.stub(LazyBones, 'default');
Bones.returns(() => (<div />));
wrapper = shallow(<BoneYard />);
});
afterEach(function() {
Bones.restore();
});
it('renders bones', function() {
console.log(wrapper)
expect(wrapper.exists(Bones)).to.equal(true);
})
})
Run Code Online (Sandbox Code Playgroud)
我期望的是测试通过,并且 console.log 打印出来:
<Suspense fallback={{...}}>
<Bones /> …Run Code Online (Sandbox Code Playgroud) 我正在使用 Storybook 和 React-Redux。
\n我在 中有一个全局装饰器preview.js,它添加了商店,如下所示:
import { addDecorator } from \'@storybook/react\';\nimport ProviderWrapper from \'../src/components/Provider\'; //Provides the store\n\naddDecorator(storyFn => <ProviderWrapper>{storyFn()}</ProviderWrapper>\nRun Code Online (Sandbox Code Playgroud)\nProviderWrapper 只是(或多或少):
\nimport { Provider } from \'react-redux\';\nimport { configureStore } from \'../redux/configureStore\';\n\nconst store = configureStore();\nexport const ProviderWrapper = ({ children }) =>\n (<Provider store={store}>{children}</Provider>)\nRun Code Online (Sandbox Code Playgroud)\n目前配置store很简单:const configureStore = () => createStore(reducers);
我遇到的问题是,当我尝试在我的组件之一中使用react-redux钩子并设置它时,我收到以下错误消息:
\ncould not find react-redux context value; please ensure the component is wrapped in a <Provider>\nRun Code Online (Sandbox Code Playgroud)\n我的组件像这样使用商店:
\n …假设我有这段代码:
useEffect(() => {
makeBreakfast(pig)
}, [pig, chicken])
Run Code Online (Sandbox Code Playgroud)
makeBreakfast被调用pig,并且它位于依赖项中是有意义的。然而,在这个虚拟示例中,我们还想在pig每次chicken更改时制作早餐(我不知道为什么,这只是一个示例!)。我们本质上是在监听 的变化chicken,即使它不涉及函数makeBreakfast。
useEffect(() => {
if(breakfastMadeRef.current) {
farmerFed.current = true;
}
}, [farmerIndex])
Run Code Online (Sandbox Code Playgroud)
在此示例中,没有实际的依赖项,但我们确实希望检查/更改 farmerIndex 更改的引用(同样,这只是一个虚拟示例)。
这种“额外”依赖性有什么后果吗?对我来说这似乎不干净,正如我期望的那样(从文档以及我见过/使用的其他地方useEffect)所有依赖项都将在效果函数的主体中使用。
如果我react-hooks/exhaustive-deps按照预期使用该规则,则不会有任何抱怨。所以我倾向于认为这是可以的,尽管如果我们最终将整个农场添加到依赖项列表中可能会产生误导/混淆?