+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
import std.stdio;
interface A {
void M();
}
interface B : A {
final void M() {
writeln("BBBB");
}
}
class C : B {
}
void main() {
auto c = new C();
c.M();
}
а багры здесь тихие
> Error: class `C` interface function `void M()` is not implemented
Desktop,
20 Сентября 2023
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
import std.stdio;
interface Pethu {
final void Say() {
writeln("Hrueeee");
}
}
void SayTwice(Pethu pethu) {
pethu.Say();
pethu.Say();
}
class PethuImpl : Pethu { }
void main() {
auto pethu = new PethuImpl();
pethu.SayTwice();
}
Desktop,
19 Сентября 2023
0
- 1
Тест потерянных комментариев
Desktop,
17 Сентября 2020
0
- 1
Тестовый тред, можно игнорить
Desktop,
07 Августа 2020
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
#lang racket
(require racket/syntax)
(define-syntax (_total stx)
(syntax-case stx ()
[(_total item price amount)
(let ([make-id
(lambda (template . ids)
(let ([str (apply format template (map syntax->datum ids))])
(datum->syntax stx (string->symbol str))))])
(with-syntax ([total-item-price (make-id "~a-price" #'item)]
)
#'(begin
(total-item-price price amount)
)))]
)
)
(define-syntax-rule (total item price amount)
(cond [(eq? item 'apple) (_total apple price amount)]
[(eq? item 'grape) (_total grape price amount)]
[else (_total general price amount)]
)
)
(define (apple-price price amount)
(* price (- amount (/ amount 2)))
)
(define (grape-price price amount)
(* price (if (> amount 1) (/ (* amount 4) 5) amount))
)
(define (general-price price amount)
(* amount price)
)
(define apples '(apple 10 4))
(define grapes '(grape 20 3))
(define other '(peach 30 1))
(foldl (λ (lst result)
(+ result (total (car lst) (cadr lst) (caddr lst)))
)
0
(list apples grapes other)
)
Когда у тебя есть macroмолоток, всё остальное кажется гвоздями.
Desktop,
07 Июня 2020
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
struct Ololo: Comparable {
let value: Int
static func < (lhs: Ololo, rhs: Ololo) -> Bool {
return lhs.value < rhs.value
}
static func < (lhs: Ololo, rhs: Ololo) -> String {
if lhs.value < rhs.value {
return "LESS"
} else if lhs.value > rhs.value {
return "MORE"
} else {
return "EQUAL"
}
}
}
let ololo1 = Ololo(value: 100)
let ololo2 = Ololo(value: 200)
let bool: Bool = ololo1 < ololo2
let string: String = ololo1 < ololo2
А в плюсах можно в operator> любую херь вернуть © jojaxon
Наверное, я поторопился, когда сказал, что крестобляди будет в свифте тесно.
Desktop,
06 Июня 2020
+1
- 1
https://github.com/oskusalerma/trelby/issues/85
Сорян за пост-ссылку, но я тут валяюсь под столом просто.
Есть тулза для написания сценариев (для чего только нет тулзы, правда?). Она опенсурсная и при этом выглядит не как говно. Но, когда начинаешь её щупать, ВНЕЗАПНО оказывается, что буквы кириллицы в ней тупо не набираются. Лезешь в FAQ, там лежит ссылка на issue из поста. А уже там просто сказка!
Короч, автор примерно в 2007 году сходил почитал спеку пдф, обнаружил, что "PDF spec is oriented towards Latin-1" и решил, что это даёт ему моральное право забить болт на Unicode, а заодно utf-8 и унтерменш, которые не осилили самый тривиальный сабсет латиницы.
В 2012-ом после, судя по всему, многочисленных недоумённых вопросов автор снова появился на горизонте с тикетом на гитхабе и объяснениями в духе "Unicode нет и не будет, потому что не для тебя моя черешня цвела". Цитата для понимания майндсета чувака: "That's how it was 5 years ago anyway when I last looked at it; maybe the spec has improved since then?"
В общем, выглядело так, будто дядя устал и решил, что пора бы всю эту хуйню переложить на чужие хрупкие плечи, у нас тут опенсурс тем более и все дела.
Но, когда в 2015-ом году появился некий анон с предложением все починить и даже какими-то наработками, автор ему сказал, что иди сука гоняй тесты (видимо, руками, потому что CI настроить он тоже не смог) на всех платформах, а то, вишь, "the old "I'll do the fun bits and let others do the boring bits" strategy. Good luck with that."
Короч чуваки ещё немного поспорили с этим аутистом, после чего съебались в туман, а тулза так кириллицу и не поддерживает.
Смешно и грустно.
Desktop,
05 Мая 2020
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
import sequtils
when not declared(unzip):
proc unzip*[S, T](s: openArray[(S, T)]): (seq[S], seq[T]) =
result[0] = newSeq[S](s.len)
result[1] = newSeq[T](s.len)
for i in 0..<s.len:
result[0][i] = s[i][0]
result[1][i] = s[i][1]
let a = @[('a', 1), ('b', 2), ('c', 3)]
let b = unzip(a) # version 1.0 will use the proc declared above
# version 1.2 will use sequtils' proc
assert b == (@['a', 'b', 'c'], @[1, 2, 3])
Если в библиотеке нет нужного метода, вы можете написать его сами и кинуть в сторону своих пользователей.
Desktop,
01 Мая 2020
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
import ballerina/auth;
import ballerina/config;
import ballerina/http;
import ballerina/log;
auth:InboundBasicAuthProvider basicAuthProvider = new;
http:BasicAuthHandler basicAuthHandler = new (basicAuthProvider);
listener http:Listener ep = new (9090, config = {
auth: {
authHandlers: [basicAuthHandler]
},
secureSocket: {
keyStore: {
path: config:getAsString("b7a.home") +
"/bre/security/ballerinaKeystore.p12",
password: "ballerina"
}
}
});
@http:ServiceConfig {
basePath: "/hello",
auth: {
scopes: ["scope1"]
}
}
service echo on ep {
@http:ResourceConfig {
methods: ["GET"],
path: "/sayHello",
auth: {
scopes: ["scope2"]
}
}
resource function hello(http:Caller caller, http:Request req) {
error? result = caller->respond("Hello, World!!!");
if (result is error) {
log:printError("Error in responding to caller", result);
}
}
}
Кто что думает про https://ballerina.io?
Desktop,
19 Апреля 2020
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
import Foundation
@objc protocol SomethingDoable {
func doSomething()
}
class Inner: SomethingDoable {
@objc func doSomething() {
print("Inner!")
}
}
@objc class Outer: NSObject {
let inner: SomethingDoable = Inner()
override func forwardingTarget(for aSelector: Selector!) -> Any? {
return inner
}
}
let outer = Outer()
outer.perform(#selector(SomethingDoable.doSomething))
Удачного дебага!
Desktop,
27 Марта 2020