在phoenix中查看配置文件时,如果我创建这样的配置:
config :myapp,
http: 4000
Run Code Online (Sandbox Code Playgroud)
我可以像这样在我的代码中引用该键:
Application.fetch_env!(:myapp, :http)
Run Code Online (Sandbox Code Playgroud)
有时配置似乎特定于某个模块,例如下面的MyApp.Endpoint。
这只是将配置分为几类吗?如果我也需要如何在代码中引用下面的http端口?
config :myapp, MyApp.Endpoint,
http: [port: 4000],
debug_errors: true
Run Code Online (Sandbox Code Playgroud) 我有一个简单的 Rails 5.x,我正在尝试使用 docker 来工作。
我正在使用 google cloud build 来构建我的图像。当我在 Ubuntu 18.x 上执行 docker 构建时,它工作正常。
我的 Dockerfile 如下所示:
FROM ruby:2.5-alpine
RUN apk update && apk --update add \
build-base \
nodejs \
postgresql-dev \
tzdata \
imagemagick
#RUN apt-get install -y build-essential
# yarn
ENV PATH=/root/.yarn/bin:$PATH
RUN apk add --virtual build-yarn curl && \
touch ~/.bashrc && \
curl -o- -L https://yarnpkg.com/install.sh | sh && \
apk del build-yarn
RUN mkdir /app
WORKDIR /app
COPY Gemfile ./
RUN gem install …Run Code Online (Sandbox Code Playgroud) ruby-on-rails docker google-cloud-platform google-cloud-build
我想四舍五入到下一个1000值,总是四舍五入。
输入示例:
1 -> 1000
440 -> 1000
1001 -> 2000
14399 -> 15000
108 030 -> 109 000
Run Code Online (Sandbox Code Playgroud)
我只能找到一个与我无关的Float.ceil函数。
def atMost(actual: Int, limit: Int): Int = max(actual, limit)
假设我有一个像上面这样的函数atMost,我必须这样称呼它:
atMost(100, 25) // returns 25
Run Code Online (Sandbox Code Playgroud)
如果我想这样称呼它怎么办:
val a:Int = 100 atMost 25
Run Code Online (Sandbox Code Playgroud)
我将如何编写这样的函数?
此外,您还可以创建哪些其他风格的函数?像从左读,从右读可能吗?
如何在GUID上执行AES加密?
在客户端计算机上,我们将存储GUID及其公钥,我们的内部服务器将具有私钥及其guid.
这是生成AES加密的所有必要输入吗?
我正在看这个代码,它看起来像:
blah("....");
{
call1(blah);
call2();
{
inner1("...");
inner2("...");
}
}
Run Code Online (Sandbox Code Playgroud)
我是java的新手,很想知道要搜索什么,这种风格看起来很有趣.
我有一小段压缩成字符串的代码,然后将压缩后的版本读回原始版本。
如何测量压缩水平?即计数前后字符串的字节数?
sentence := "A long time ago in a galaxy far, far away..."
var buf bytes.Buffer
zw := gzip.NewWriter(&buf)
// Setting the Header fields is optional.
zw.Name = "a-new-hope.txt"
zw.Comment = "an epic space opera by George Lucas"
zw.ModTime = time.Date(1977, time.May, 25, 0, 0, 0, 0, time.UTC)
_, err := zw.Write([]byte(sentence))
if err != nil {
log.Fatal(err)
}
if err := zw.Close(); err != nil {
log.Fatal(err)
}
Run Code Online (Sandbox Code Playgroud)
我有一个异步方法,其签名如下:
public static async void Run(..)
{
//..
var responseMessage = await client.PostAsync(..);
// ..
using (Stream stream = await responseMessage.Content.ReadAsStreamAsync())
//...
Thread.Sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)
我可以在控制台应用程序中使用此方法,如下所示:
static async Task Main(string[] args)
{
for(int x = 1; x < 100; x++)
{
Run(...);
}
}
Run Code Online (Sandbox Code Playgroud)
由于速率限制,我想在我的 Run 方法中阻塞/休眠,我该怎么做?
我试过这个:
public static async void Run(...)
{
// ...
Thread.Sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何作用。有人可以解释为什么这不起作用以及正确的方法吗?
我需要创建一个路由,看起来像这样:
/{project}/{module_type}/{module_name}/{sub-section}/{id}
Run Code Online (Sandbox Code Playgroud)
所以在控制器/动作/ id映射方面,它将是:
controller = module_type
action = sub-section
id = id
Run Code Online (Sandbox Code Playgroud)
还有另外两个变量:
project而且module_name我需要.
我的路线会是什么样子:
我使用的是最新版本的MVC(MVC3)
我正在为xml编写一个SAX解析器,它返回的对象没有我在事件中设置的值.
我的类结构是这样的:
public class ProductSAXHandler extends DefaultHandler {
private Product product;
public ProductSAXHandler() {
product = new Product();
}
public Product ParseXmlFile(String xml) {
SAXParserFactory spf = new ...
XMLReader parser = ....
parser.parse(xml);
return product;
}
public void StartElement(....) {
for(int ...) { // looping through attributes
if(qName == "description" && name == "sku") {
product.setSKU(value);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我处于调试模式时,产品的值确实设置了,我可以看到产品的sku字段具有正确的值.
但由于某种原因,product返回的对象只是一个新的Product对象,在解析过程中没有设置任何值.
我在这做错了什么?一定是我不理解这些事件是如何被解雇的等等.
更新
很奇怪,在我的if语句中,set的属性值正确地指向了我的产品类的SKU字段,但是当我在ParseXMLFile中返回产品对象时,SKU字段为空.
我猜回调是在不同的时间开始,我怎么想正确回归呢?
有人可以解释以下语法在 Go 中的含义,特别是:
x.([]byte)
Run Code Online (Sandbox Code Playgroud)
我不确定这是什么意思,这是演员表吗?但是对于什么方法,因为它就在一个点之后?
func of(x interface{}) ByteView {
if bytes, ok := x.([]byte); ok {
return ByteView{b: bytes}
}
return ByteView{s: x.(string)}
}
Run Code Online (Sandbox Code Playgroud)
参考:https : //github.com/golang/groupcache/blob/master/byteview_test.go#L55
我在以下事件中设置xml元素内的字符:
public void characters(char[] ch, int start, int length) {
elementText = new String(ch, start, length);
}
Run Code Online (Sandbox Code Playgroud)
其中elementText是一个String.
<client-key>#<ABC::DEF::GHI:0x102548f78></client-key>
Run Code Online (Sandbox Code Playgroud)
我将此xml数据加载到java对象中,我的objects属性具有以下值:
'\n '
Run Code Online (Sandbox Code Playgroud)
现在,如果我更改<client-key>上面元素中的文本,它在我的对象属性中就可以了.
我需要以某种方式处理某些编码问题吗?
public void endElement(String uri, String localName, String qName) {
if (qName.equals("client-key")) {
client.setClientKey(elementText);
}
}
Run Code Online (Sandbox Code Playgroud) 我了解 go 中的地图,但是这段代码片段让我感到困惑:
testCases := map[string]struct {
pod *api.Pod
required []corev1.ResourceName
err string
}{
"init container resource missing": {
pod: &api.Pod{
Spec: api.PodSpec{
InitContainers: []api.Container{{
Resources: api.ResourceRequirements{
Requests: api.ResourceList{api.ResourceCPU: resource.MustParse("1m")},
Limits: api.ResourceList{api.ResourceCPU: resource.MustParse("2m")},
},
}},
},
},
required: []corev1.ResourceName{corev1.ResourceMemory},
err: `must specify memory`,
},
"container resource missing": {
pod: &api.Pod{
Spec: api.PodSpec{
Containers: []api.Container{{
Resources: api.ResourceRequirements{
Requests: api.ResourceList{api.ResourceCPU: resource.MustParse("1m")},
Limits: api.ResourceList{api.ResourceCPU: resource.MustParse("2m")},
},
}},
},
},
required: []corev1.ResourceName{corev1.ResourceMemory},
err: `must specify memory`,
},
}
Run Code Online (Sandbox Code Playgroud)
我是这样理解的:
testCases := map[string]struct
Run Code Online (Sandbox Code Playgroud)
但接下来的内容对我来说毫无意义。代码如何自行定义 api.Pod、corev1.ResourceName …
go ×3
java ×3
c# ×2
elixir ×2
sax ×2
xml ×2
aes ×1
asp.net-mvc ×1
async-await ×1
docker ×1
encryption ×1
scala ×1
spring ×1
xerces ×1
zip ×1