在Unity中使用foreach循环时,我需要在update方法中调用它.所以每帧调用一次......
我想知道,如果最好在使用foreach循环之前检查列表的计数,或者它是多余的.
所以我有
if (myList.Count > 0)
{
foreach (Type type in myList)
{
}
}
Run Code Online (Sandbox Code Playgroud)
和
foreach (Type type in myList) // no need for a check before
{
}
Run Code Online (Sandbox Code Playgroud)
我也可以用
for (int i = 0; i < myList.Count; i++) // use a for loop instead
{
myList[i].DoSomething();
}
Run Code Online (Sandbox Code Playgroud) 我刚刚从这里下载并安装了 PostgreSQL
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
我想创建我的第一个服务器,但收到此错误
“utf8”编解码器无法解码位置 36 中的字节 0xfc:起始字节无效
我的 pg 服务自动运行
我缺少什么?
我Serializable为检查员创建了一个类。
[Serializable]
public class CellType
{
[SerializeField]
public int? Cost; // This does not appear in the inspector
[SerializeField]
public Color MaterialColor;
}
Run Code Online (Sandbox Code Playgroud)
可为空的字段Cost不会出现在检查器中。我通过创建一个SerializeField
[SerializeField]
private CellType[] types;
Run Code Online (Sandbox Code Playgroud)
如果该字段Cost为默认int,则该字段将出现。有解决方法吗?
我想设置一个包含m * n个对象的网格。该网格的宽度为m行n列。
我首先尝试了这段代码
let map = [][]; // Create an array that takes a x and y index
function createMap() {
for (let x = 0; x < columnCount; x++) {
for (let y = 0; y < rowCount; y++) {
addCell(x, y);
}
}
}
function addCell(x, y) {
map[x][y] = cell(); // create a new object on x and y
}
Run Code Online (Sandbox Code Playgroud)
显然,这是错误的语法。地图的初始化错误。如何通过将x和y坐标传递给数组来创建可以访问对象的数组?
假设我要访问要访问的(3 | 7)上的对象map[3][7]。
那可能吗?
我创建了一个 REST api 并希望在调用控制器逻辑之前验证主体和参数。对于验证,我使用Joi ( https://www.npmjs.com/package/joi )。
假设我有一个带有一个 url 参数和一些 body 变量的路由。该params对象包含此 url 参数,但 Joi 仍返回一个400. 详细信息是
“用户 ID”是必需的
我试图创建一个显示我的代码的简约示例。要重现错误,请创建app.js文件
const express = require('express');
const bodyParser = require('body-parser');
const morgan = require('morgan');
const cors = require('cors');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(cors());
app.use('/users', require('./routes/users.js'));
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
由于每次验证都失败这一事实,因此只需要一条路线来对其进行测试。使用以下内容创建users.js
const express = require('express');
const router = express.Router();
const usersController = require('../controllers/users.js');
const usersControllerPolicy = require('../policies/users.js');
router.get('/:userId', usersControllerPolicy.getUserById, usersController.getUserById);
module.exports = router; …Run Code Online (Sandbox Code Playgroud) 我正在使用带有Typescript / TSLint的NestJs和带有Javascript / ESLint的VueJs。我的VSCode扩展是ESLint,TSLint,Prettier和Vetur。开发后端时,一切都很好,代码格式正确。在使用Vue开发时,我使用了airbnb linter配置,但遇到了问题。
假设我有这个Vue实例
<script>
export default {
components: {},
data() {
return {
foo: '',
};
},
};
</script>
Run Code Online (Sandbox Code Playgroud)
然后保存文件,格式化程序将代码更新为
<script>
export default {
components: {},
data() {
return {
foo: ""
};
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
我无法运行代码,因为linter根据airbnb linter配置抛出错误。尽管它不应该修复代码,因为我已经使用过airbnb样式指南。
我使用设置同步,因此可以共享整个VSCode设置以进行复制。这些是我的设定
{
"vetur.validation.template": true,
"eslint.autoFixOnSave": true,
// ...
"javascript.updateImportsOnFileMove.enabled": "always",
// ...
"typescript.updateImportsOnFileMove.enabled": "always",
"prettier.singleQuote": true,
"prettier.trailingComma": "es5",
"prettier.useTabs": true,
"editor.formatOnSave": true,
// ...
"vetur.format.defaultFormatter.html": "prettier"
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到整个要点
https://gist.github.com/matthiashermsen/9620a315960fa7b9e31bf6cda8583e84
那么,Prettier是否正在与TSLint和ESLint进行斗争?我想要一个用于Typescript和Javascript项目的标准设置。
我还尝试使用更漂亮的皮毛来创建一个新的Vue项目,并且一切正常。所以看来,这只是在与airbnb linter配置苦苦挣扎。
有任何想法吗?感谢帮助!
我通过使用外部 API 的 Vue CLI 创建了一个 PWA。API 响应应该被缓存以供离线访问。
从文档https://cli.vuejs.org/core-plugins/pwa.html#configuration我在根目录中创建了一个vue.config.js文件
module.exports = {
publicPath: '/pwa',
pwa: {
appleMobileWebAppCapable: 'yes',
workboxPluginMode: 'GenerateSW',
workboxOptions: {
runtimeCaching: [
{
urlPattern: new RegExp('^https://example.com/'),
handler: 'networkFirst', // Network first, Cache fallback
options: {
networkTimeoutSeconds: 5,
cacheName: 'api-cache',
cacheableResponse: {
statuses: [0, 200],
},
},
},
],
},
},
};
Run Code Online (Sandbox Code Playgroud)
该项目运行良好,但我想避免在非常糟糕的连接上从 API 加载数据。
我只想在 WLAN 网络连接上加载数据。有没有办法扩展配置并设置要检测的网络类型?该配置应称为
首先使用网络但仅使用 WLAN,否则使用缓存作为后备
我想为我的 Vue 应用程序使用 Vuetify 的v-list-item-group组件。此列表表示与图相关的节点。我可以不选择、选择部分或全部并删除所选的。
为了获得更好的用户体验,我想在标题旁边的顶部提供一个“全选/取消全选”复选框。如果仅选择了某些节点,则复选框应呈现不确定状态。
目前这是我正在使用的代码
<div id="app">
<v-app id="inspire">
<v-list>
<v-list-item>
<v-list-item-action>
<v-checkbox :indeterminate="someNodesSelected" :input-value="allNodesSelected" @click="toggleCompleteSelection" />
</v-list-item-action>
<v-list-item-content>
<v-list-item-title v-text="graphWithNodes.name"></v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn icon :disabled="noNodesSelected" @click="deleteNodes">
<v-icon color="error">mdi-delete</v-icon>
</v-btn>
</v-list-item-action>
</v-list-item>
<v-list-item-group v-model="selectedNodeIds" multiple>
<v-list-item v-for="node in graphWithNodes.nodes" :key="node.id" :value="node.id">
<template v-slot:default="{ active, toggle }">
<v-list-item-action>
<v-checkbox :input-value="active" :true-value="node.id" @click="toggle" />
</v-list-item-action>
<v-list-item-content>
<v-list-item-subtitle v-text="node.id"></v-list-item-subtitle>
</v-list-item-content>
</template>
</v-list-item>
</v-list-item-group>
</v-list>
</v-app>
</div>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return { …Run Code Online (Sandbox Code Playgroud) 我必须逐个验证值,而不是传递多个值的整个架构。基于此处的单值验证文档
和这个示例代码
const validator: AnySchema = Joi.string().valid('foo', 'bar').required();
const validationResult: ValidationResult = validator.validate('invalid');
const validationError: ValidationError = validationResult.error;
if (validationError) {
throw validationError;
}
Run Code Online (Sandbox Code Playgroud)
该代码将引发错误并显示以下错误消息
ValidationError:“值”必须是 [foo,bar] 之一
有没有一种简单的方法可以"value"用特定名称替换?因此,当我想验证环境时,错误消息可能是
ValidationError:“环境”必须是[开发、生产、测试]之一
或者只有在一次验证多个值时才可能?
我使用 Discord.Net 创建了一个 Discord 机器人,它观察来自多个公会的多个语音通道。我正在侦听该UserVoiceStateUpdated事件,因为每当用户加入观察到的已静音的语音通道时,该用户应该被机器人静音。每当用户离开观察到的语音信道时,该用户应该被取消静音。
我有一个内存缓存,用于保存有关所有观察到的语音通道的信息。每个信息对象提供这些信息
public class ObservedVoiceChannelInfo
{
public ulong VoiceChannelId { get; set; }
public bool Muted { get; set; }
public List<ulong> MutedUserIds { get; set; } = new List<ulong>();
}
Run Code Online (Sandbox Code Playgroud)
对于事件部分,我考虑了以下几点:
基本上我想要实现的是:如果有人加入观察到的静音语音频道,请将该用户静音。如果该用户离开此频道,则在状态为静音的情况下取消他的静音。
这是我当前的实现(observedVoiceChannelsCache是具有观察语音通道的内存缓存字典)
private async Task OnUserVoiceStateUpdated(SocketUser socketUser, SocketVoiceState oldSocketVoiceState,
SocketVoiceState newSocketVoiceState)
{
SocketGuildUser socketGuildUser = socketUser as SocketGuildUser;
if (newSocketVoiceState.IsMuted &&
newSocketVoiceState.VoiceChannel == null &&
_observedVoiceChannelsCache.TryGetValue(oldSocketVoiceState.VoiceChannel.Id,
out ObservedVoiceChannelInfo oldObservedVoiceChannelInfo) &&
oldObservedVoiceChannelInfo.Muted)
{
bool userRemovedFromMuteList = oldObservedVoiceChannelInfo.MutedUserIds.Remove(socketGuildUser.Id);
if (userRemovedFromMuteList) …Run Code Online (Sandbox Code Playgroud) javascript ×5
c# ×3
joi ×2
vue.js ×2
arrays ×1
discord.net ×1
eslint ×1
express ×1
foreach ×1
node.js ×1
pgadmin-4 ×1
vuetify.js ×1
workbox ×1