var navn: String = "Ahmet"
navn = null // Kompileringsfejl!
var email: String? = "[email protected]" // ? gør den nullable
email = null // Dette accepteresval længde = email?.length // email null => længde = null
println(længde) // udskriver nullval længde2 = email?.length ?: 0 // null => 0 returneres
println(længde2) // email null => 0if (email != null) {
println(email.length) // email opfattes automatisk som non-nullable
}
// let med sikker blok
email?.let {
println("Email længde: ${it.length}")
} // Eller kortere
email?.let { println("Email: $it") } ?: println("Email mangler")val længde = email!!.length // email null => crashfun beregnLængde(tekst: String?): Int {
return tekst?.length ?: 0
}
fun obligatoriskTekst(tekst: String?): String {
return tekst ?: throw IllegalArgumentException("Tekst må ikke være tom")
}Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServerusing Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// Tilføj DbContext og Identity
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
builder.Services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Konfigurér middleware
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
// DbContext klasse
public class ApplicationDbContext : IdentityDbContext<IdentityUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MinIdentityDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}Add-Migration InitialCreate
Update-Databasepublic class AccountController : Controller
{
private readonly UserManager<IdentityUser> _userManager;
private readonly SignInManager<IdentityUser> _signInManager;
public AccountController(UserManager<IdentityUser> userManager, SignInManager<IdentityUser> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
[HttpPost]
public async Task<IActionResult> Register(string email, string password)
{
var user = new IdentityUser { UserName = email, Email = email };
var result = await _userManager.CreateAsync(user, password);
if (result.Succeeded)
{
await _signInManager.SignInAsync(user, isPersistent: false);
return RedirectToAction("Index", "Home");
}
return View();
}
}[HttpPost]
public async Task<IActionResult> Login(string email, string password)
{
var result = await _signInManager.PasswordSignInAsync(email, password, false, false);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
return View();
}[HttpPost]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
return RedirectToAction("Index", "Home");
}public class ApplicationUser : IdentityUser
{
public string FuldtNavn { get; set; }
}var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
await roleManager.CreateAsync(new IdentityRole("Admin"));[Authorize]
public IActionResult HemmeligSide()
{
return View();
}<a href="https://www.eksempel.dk">Klik her for at besøge Eksempel.dk</a><a href="https://www.google.com">Gå til Google</a><a href="https://www.wikipedia.org" target="_blank">Udforsk Wikipedia</a><a href="mailto:[email protected]">Send os en e-mail</a><a href="#afsnit1">Gå til afsnit 1</a>
<h2 id="afsnit1">Afsnit 1</h2>
<p>Dette er afsnit 1 på siden.</p><a href="dokumenter/rapport.pdf">Download rapporten</a>a {
text-decoration: none;
}<a href="tel:+4512345678">Ring til os</a><a href="https://www.eksempel.dk"><img src="billede.jpg" alt="Eksempel billede"></a>import 'package:flutter/material.dart';
void main() {
runApp(MinApp());
}
class MinApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Stack Eksempel")),
body: Center(
child: Stack(
children: [
Container(
width: 200,
height: 200,
color: Colors.blue,
),
Center(
child: Text(
"Velkommen til Flutter!",
style: TextStyle(
fontSize: 20,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
),
],
),
),
),
);
}
}Stack(
children: [
Container(
width: 300,
height: 300,
color: Colors.green,
),
Positioned(
top: 30,
left: 30,
child: Container(
width: 100,
height: 100,
color: Colors.yellow,
),
),
Positioned(
bottom: 20,
right: 20,
child: Text(
"Her er jeg!",
style: TextStyle(fontSize: 18, color: Colors.white),
),
),
],
)Stack(
alignment: Alignment.center,
children: [
Container(
width: 250,
height: 150,
decoration: BoxDecoration(
color: Colors.orange,
borderRadius: BorderRadius.circular(15),
),
),
Positioned(
top: 10,
child: Icon(
Icons.star,
size: 50,
color: Colors.white,
),
),
Positioned(
bottom: 10,
child: Text(
"Favorit",
style: TextStyle(
fontSize: 24,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
),
],
)function sigHej(navn) {
return "Hej, " + navn + "!";
}
console.log(sigHej("Anna")); // Udgiver: Hej, Anna!const beregnSum = function(a, b) {
return a + b;
};
console.log(beregnSum(5, 3)); // Udgiver: 8const gangMedTo = (tal) => tal * 2;
console.log(gangMedTo(4)); // Udgiver: 8function tjekAlder(alder) {
if (alder >= 18) {
return "Du er gammel nok til at stemme!";
} else {
return "Du er for ung til at stemme.";
}
}
console.log(tjekAlder(20)); // Udgiver: Du er gammel nok til at stemme!
console.log(tjekAlder(15)); // Udgiver: Du er for ung til at stemme.export-nøglen.1export function tilfoj(a: number, b: number): number {
2 return a + b;
3}
4
5export function subtraher(a: number, b: number): number {
6 return a - b;
7}
8tilfoj og subtraher, som begge kan eksporteres.export-nøglen.1import { tilfoj, subtraher } from './matematik';
2
3console.log(tilfoj(5, 10)); // Vil logge 15
4console.log(subtraher(10, 5)); // Vil logge 5
5namespace-nøglen.1async function indlaesModul() {
2 const matematik = await import('./matematik');
3 console.log(matematik.tilfoj(5, 10));
4}
5index.ts-fil i hver mappe, der eksporterer alle modulerne i mappen. Dette gør det lettere at importere moduler fra en enkelt kilde.matematik, kunne din index.ts se sådan ud:export-nøglen i en .ts-fil.import-nøglen, efterfulgt af de eksporterede elementer fra modulet.1import React, { useEffect, useState } from 'react';
2
3const ApiExample = () => {
4 const [data, setData] = useState([]);
5
6 useEffect(() => {
7 fetch('https://api.example.com/data')
8 .then(response => response.json())
9 .then(data => setData(data))
10 .catch(error => console.error('Error fetching data:', error));
11 }, []);
12
13 return (
14 <div>
15 {data.map(item => (
16 <div key={item.id}>{item.name}</div>
17 ))}
18 </div>
19 );
20};
21
22export default ApiExample;
23useEffect-hooken til at lave en API-anmodning, når komponenten bliver monteret.1import React, { useEffect, useState } from 'react';
2import axios from 'axios';
3
4const ApiExample = () => {
5 const [data, setData] = useState([]);
6
7 useEffect(() => {
8 axios.get('https://api.example.com/data')
9 .then(response => setData(response.data))
10 .catch(error => console.error('Error fetching data:', error));
11 }, []);
12
13 return (
14 <div>
15 {data.map(item => (
16 <div key={item.id}>{item.name}</div>
17 ))}
18 </div>
19 );
20};
21
22export default ApiExample;
23catch-metoden, som vi har set i tidligere eksempler, men du kan også vise en passende fejlmeddelelse til brugeren, hvis noget går galt.useState og useEffect er essentielle, når du håndterer data i React. De gør det muligt at opdatere komponentens tilstand baseret på de data, du henter fra API'et.catch-metoden med dine fetch- eller axios-anmodninger og vise passende fejlmeddelelser til brugeren.config/routes.rb. Her kan du specificere, hvilke URL-stier der skal pege på hvilke controller-handlinger.artikler-controlleren, herunder oprettelse, visning, opdatering og sletning af artikler.artikler controlleren.1class ArtiklerController < ApplicationController
2 def index
3 @artikler = Artikel.all
4 end
5
6 def show
7 @artikel = Artikel.find(params[:id])
8 end
9end
10index-handlingen alle artikler, mens show-handlingen henter en specifik artikel baseret på det angivne ID.routes.rb filen med for mange ruter. Hvor det er muligt, grupper relaterede ruter sammen.admin namespace, hvilket gør det tydeligt, at de understøtter administrationsfunktioner.config/routes.rb filen, f.eks. get 'hjem/index'.rescue_from metoden for at fange undtagelser og give brugerdefinerede fejlmeddelelser.session_start()-funktionen. Dette skal gøres på toppen af din PHP-fil, før nogen HTML-output vises.$_SESSION superglobale array. Her er et eksempel:setcookie()-funktionen. Her er et eksempel:session_start() i begyndelsen af din PHP-fil.$_SESSION.$_COOKIE arrayet. For eksempel: if (isset($_COOKIE['user'])) { ... }.if, elif, og else, og giver dig mulighed for at udføre forskellige kodesegmenter baseret på specifikke betingelser. Eksempelvis kan du spørge, om en bruger er over 18 år og tage en beslutning baseret på svaret.for og while løkker gør det muligt at gentage kodeblokke, så længe en betingelse er sand. Det er som at køre i en cirkel, indtil du når dit mål!and, or, og not. Disse operatører kan sammenkæde betingelser, så vi kan lave komplekse beslutninger.if-udsagnet bliver udført.True eller False). De hjælper os med at kontrollere, om bestemte betingelser er opfyldt.1age = 20
2has_permission = True
3
4if age >= 18 and has_permission:
5 print("Du har adgang!")
6not har højere prioritet end and, og and har højere prioritet end or. Så du skal være opmærksom på rækkefølgen, når du bygger dine logiske udsagn.1farve = "blå"
2
3if farve == "blå":
4 print("Himlen er blå!")
5elif farve == "grøn":
6 print("Græsset er grøn!")
7else:
8 print("Det er en anden farve.")
9while-løkke sammen med en betingelse:if og elif i Python? if bruges til at starte en betingelse, mens elif tillader dig at tilføje flere betingelser, hvis den første er falsk.not operatøren? not ændrer værdien af en boolesk betingelse fra sand til falsk og omvendt.and, or og not i én logisk betingelse for mere komplekse udsagn.